0
点赞
收藏
分享

微信扫一扫

23、JAVA进阶——日期操作类

 ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。

🍎个人主页:乐趣国学的博客

🍊个人信条:不迁怒,不贰过。小知识,大智慧。

💞当前专栏:JAVA开发者成长之路

✨特色专栏:国学周更-心性养成之路


🥭本文内容:JAVA进阶——日期操作类

目录

​​日期操作类​​

​​1、Date类​​

​​2、DateFormat类​​

​​3、SimpleDateFormat类​​

​​4、Calendar类​​

23、JAVA进阶——日期操作类_字段

日期操作类

     (1)java.util包也是Java内置的一个工具包,它包含了集合框架、日期和时间、随机数生成器等各种实用工具类。


     (2)java.util包不会默认导入,如果要使用该包中的类,则必须在程序的开始部分进行手工导入。


     (3)java.util包中提供的和日期相关的类常见有:

              Date类        Calendar类        DateFormat类        SimpleDateFormat


     (4)在JDK 1.1之间,Date类允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的API不易于实现国际化。从JDK 1.1开始,使用Calendar类实现日趋和时间字段之间的转化,使用DataFormat类来格式化和解析日期字符串。

1、Date类

        Date类对象用来表示日期和时间,该类提供了一系列操作日期和时间各组成部分的方法。Date类中使用最多的是获取系统当前的日期和时间。

        举例:Date date = new Date();这句代码是使用系统当前时间创建日期对象。

2、DateFormat类

        DateFormat类用来格式化日期和时间,它在java.text包下,是一个抽象类,提供了多种格式化和解析时间的方法。

        格式化是将日期转换成文本,解析是将文本转换成日期格式。

3、SimpleDateFormat类

        SimpleDateFormat类是DateFormat类的子类。

        SimpleDateFormat类是一个以语言环境有关的方式格式化和解析日期的具体类,如“yyyy-MM-dd HH:mm:ss”就是指定的一种日期和时间格式。

“2022年09月30日 09:20:42 星期五”的输出。

public class DateDemo01 {
public static void main(String[] args) {
// 创建Date类对象
Date date = new Date();
// System.out.println(date);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E D");
String str = sdf.format(date);
System.out.println("现在是:" + str);
}
}

4、Calendar类

        Calendar类也是用老操作日期和时间的类,它可以看作是Date类的一个增强版。Calendar类提供了一组方法,允许把一个以毫秒为单位的时间转换成年、月、日、小时、分、秒。

        可以把Calendar类当做是万年历,默认显示的是当前时间,当然也可以查看其他时间。

        Calendar类是抽象类,可以通过静态方法getInstance()获得Calendar类的对象,其实这个获得的对象是它的子类的对象。

        Calendar类提供一些方法和静态字段来操作日历,常用字段:

                -->int get(int field):返回给定日历字段的值。

                -->YEAR:指示年。

                -->MONTH:指示月。

                -->DAY_OF_MONTH:指示一个月中的某天。

                -->DAY_OF_WEEK:指示一个星期中的某天。

        例子:使用Calendar类实现:“2022年9月30日,9点25分29秒,星期五”格式的输出。

public static void main(String[] args) {
// 直接创建一个Calendar类对象是创建不了的,因为Calendar类是一个抽象类
Calendar cal = Calendar.getInstance();

// 获取年
int year = cal.get(Calendar.YEAR);
// 获取月
int month = cal.get(Calendar.MONTH);
// 获取日
int day = cal.get(Calendar.DAY_OF_MONTH);

// 获取时分秒
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);

// 获取星期
int week = cal.get(Calendar.DAY_OF_WEEK);

String xingQi = null;

switch (week) {
case 1:
xingQi = "星期日";
break;
case 2:
xingQi = "星期一";
break;
case 3:
xingQi = "星期二";
break;
case 4:
xingQi = "星期三";
break;
case 5:
xingQi = "星期四";
break;
case 6:
xingQi = "星期五";
break;
case 7:
xingQi = "星期六";
break;
}

String[] weeks = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };

System.out.println("现在是:" + year + "年" + (month + 1) + "月" + day + "日,"
+ hour + "点" + minute + "分" + second + "秒," + weeks[week - 1]);

System.out.println("今天是这一年中的第" + cal.get(Calendar.DAY_OF_YEAR) + "天");
System.out.println("这个星期是这一年的第" + cal.get(Calendar.WEEK_OF_YEAR)
+ "个星期");

}

Calendar类——字段摘要

​static int​

ALL_STYLES​           指示所有风格名称的 ​​getDisplayNames​​ 的风格说明符,比如 "January" 和 "Jan"。

​static int​

AM​           指示从午夜到中午之前这段时间的 ​​AM_PM​​ 字段值。

​static int​

AM_PM​           ​​get​​ 和 ​​set​​ 的字段数字,指示 ​​HOUR​​ 是在中午之前还是在中午之后。

​static int​

APRIL​           指示在格里高利历和罗马儒略历中一年中第四个月的 ​​MONTH​​ 字段值。

​protected  boolean​

areFieldsSet​           如果 ​​fields[]​​ 与当前的设置时间同步,则返回 true。

​static int​

AUGUST​           指示在格里高利历和罗马儒略历中一年中第八个月的 ​​MONTH​​ 字段值。

​static int​

DATE​           ​​get​​ 和 ​​set​​ 的字段数字,指示一个月中的某天。

​static int​

DAY_OF_MONTH​           ​​get​​ 和 ​​set​​ 的字段数字,指示一个月中的某天。

​static int​

DAY_OF_WEEK​           ​​get​​ 和 ​​set​​ 的字段数字,指示一个星期中的某天。

​static int​

DAY_OF_WEEK_IN_MONTH​           ​​get​​ 和 ​​set​​ 的字段数字,指示当前月中的第几个星期。

​static int​

DAY_OF_YEAR​           ​​get​​ 和 ​​set​​ 的字段数字,指示当前年中的天数。

​static int​

DECEMBER​           指示在格里高利历和罗马儒略历中一年中第十二个月的 ​​MONTH​​ 字段值。

​static int​

DST_OFFSET​           ​​get​​ 和 ​​set​​ 的字段数字,以毫秒为单位指示夏令时的偏移量。

​static int​

ERA​           指示年代的 ​​get​​ 和 ​​set​​ 的字段数字,比如罗马儒略历中的 AD 或 BC。

​static int​

FEBRUARY​           指示在格里高利历和罗马儒略历中一年中第二个月的 ​​MONTH​​ 字段值。

​static int​

FIELD_COUNT​           ​​get​​ 和 ​​set​​ 可识别的不同字段的数量。

​protected  int[]​

fields​           此日历当前设置时间的日历字段值。

​static int​

FRIDAY​           指示 Friday 的 ​​DAY_OF_WEEK​​ 字段值。

​static int​

HOUR​           ​​get​​ 和 ​​set​​ 的字段数字,指示上午或下午的小时。

​static int​

HOUR_OF_DAY​           ​​get​​ 和 ​​set​​ 的字段数字,指示一天中的小时。

​protected  boolean[]​

isSet​           通知是否设置了该日历某一指定日历字段的标志。

​protected  boolean​

isTimeSet​           如果 ​​time​​ 值是一个有效值,则返回 true。

​static int​

JANUARY​           指示在格里高利历和罗马儒略历中一年中第一个月的 ​​MONTH​​ 字段值。

​static int​

JULY​           指示在格里高利历和罗马儒略历中一年中第七个月的 ​​MONTH​​ 字段值。

​static int​

JUNE​           指示在格里高利历和罗马儒略历中一年中第六个月的 ​​MONTH​​ 字段值。

​static int​

LONG​           指示长名称的 ​​getDisplayName​​ 和 ​​getDisplayNames​​ 的风格说明符,比如 "January"。

​static int​

MARCH​           指示在格里高利历和罗马儒略历中一年中第三个月的 ​​MONTH​​ 字段值。

​static int​

MAY​           指示在格里高利历和罗马儒略历中一年中第五个月的 ​​MONTH​​ 字段值。

​static int​

MILLISECOND​           ​​get​​ 和 ​​set​​ 的字段数字,指示一秒中的毫秒。

​static int​

MINUTE​           ​​get​​ 和 ​​set​​ 的字段数字,指示一小时中的分钟。

​static int​

MONDAY​           指示 Monday 的 ​​DAY_OF_WEEK​​ 字段值。

​static int​

MONTH​           指示月份的 ​​get​​ 和 ​​set​​ 的字段数字。

​static int​

NOVEMBER​           指示在格里高利历和罗马儒略历中一年中第十一个月的 ​​MONTH​​ 字段值。

​static int​

OCTOBER​           指示在格里高利历和罗马儒略历中一年中第十个月的 ​​MONTH​​ 字段值。

​static int​

PM​           指示从中午到午夜之前这段时间的 ​​AM_PM​​ 字段值。

​static int​

SATURDAY​           指示 Saturday 的 ​​DAY_OF_WEEK​​ 字段值。

​static int​

SECOND​           ​​get​​ 和 ​​set​​ 的字段数字,指示一分钟中的秒。

​static int​

SEPTEMBER​           指示在格里高利历和罗马儒略历中一年中第九个月的 ​​MONTH​​ 字段值。

​static int​

SHORT​           指示短名称的 ​​getDisplayName​​ 和 ​​getDisplayNames​​ 的风格说明符,比如 "Jan"。

​static int​

SUNDAY​           指示 Sunday 的 ​​DAY_OF_WEEK​​ 字段值。

​static int​

THURSDAY​           指示 Thursday 的 ​​DAY_OF_WEEK​​ 字段值。

​protected  long​

time​           日历的当前设置时间,以毫秒为单位,表示自格林威治标准时间 1970 年 1月 1 日 0:00:00 后经过的时间。

​static int​

TUESDAY​           指示 Tuesday 的 ​​DAY_OF_WEEK​​ 字段值。

​static int​

UNDECIMBER​           指示一年中第十三个月的 ​​MONTH​​ 字段值。

​static int​

WEDNESDAY​           指示 Wednesday 的 ​​DAY_OF_WEEK​​ 字段值。

​static int​

WEEK_OF_MONTH​           ​​get​​ 和 ​​set​​ 的字段数字,指示当前月中的星期数。

​static int​

WEEK_OF_YEAR​           ​​get​​ 和 ​​set​​ 的字段数字,指示当前年中的星期数。

​static int​

YEAR​           指示年的 ​​get​​ 和 ​​set​​ 的字段数字。

​static int​

ZONE_OFFSET​           ​​get​​ 和 ​​set​​ 的字段数字,以毫秒为单位指示距 GMT 的大致偏移量。

        码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,请关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

23、JAVA进阶——日期操作类_java_02

举报

相关推荐

0 条评论