欢迎访问宙启技术站
智能推送

Java中如何使用Date类函数获取和处理日期和时间相关信息?

发布时间:2023-06-14 15:36:41

Java中Date类是用来获取和处理日期和时间相关信息的。Date类中包含了一系列的构造函数和方法,可以方便地操作日期和时间。

获取当前日期和时间

Date类中有一个无参构造函数,用来创建一个表示当前时间的Date对象。这个对象可以使用Date类中定义的方法来获取日期和时间信息。

代码实现:

Date date = new Date();
System.out.println(date);

上述代码可以获取当前日期和时间的信息,输出结果如下:

Fri Jul 30 21:56:24 GMT+08:00 2021

获取指定日期和时间信息

可以使用有参构造函数来创建一个指定日期和时间的Date对象。有参构造函数需要传入一个表示日期和时间的long类型参数,该参数从1970年1月1日0时0分0秒开始计算,表示日期和时间间隔的毫秒数。

代码实现:

Date date = new Date(1627569535000L);
System.out.println(date);

上述代码会创建一个表示2021年7月30日22时12分15秒的Date对象,输出结果如下:

Fri Jul 30 22:12:15 GMT+08:00 2021

获取日期和时间信息

Date类中提供了一系列方法来获取日期和时间信息,比如获取年份、月份、日、小时、分钟、秒、毫秒、星期等信息,下面是一些示例代码:

Date date = new Date();

//获取年份,返回值为年份-1900
int year = date.getYear();
//获取月份,返回值为0-11,0表示一月
int month = date.getMonth();
//获取日,返回值为1-31
int day = date.getDate();
//获取小时,返回值为0-23
int hour = date.getHours();
//获取分钟,返回值为0-59
int minute = date.getMinutes();
//获取秒,返回值为0-59
int second = date.getSeconds();
//获取毫秒,返回值为0-999
long milliseconds = date.getTime() % 1000;
//获取星期,返回值为0-6,0表示星期天
int week = date.getDay();

System.out.println(year + "-" + (month + 1) + "-" + day + " " + hour + ":" + minute + ":" + second + "." + milliseconds + " week" + week);

上述代码输出结果如下:

121-7-30 23:32:59.977 week5

日期和时间的格式化输出

在开发中,我们通常需要将日期和时间进行格式化输出,可以使用SimpleDateFormat类来进行格式化输出。

代码实现:

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatTime = sdf.format(date);
System.out.println(formatTime);

上述代码将当前时间按照指定格式输出,输出结果如下:

2021-07-30 23:37:51

SimpleDateFormat类中定义了多种格式化输出的模式,常用的有以下几种:

| 模式 | 含义 |

| --- | --- |

| yyyy | 年份,如2021 |

| MM | 月份,如07 |

| dd | 日,如30 |

| HH | 小时,24小时制,如23 |

| mm | 分钟,如37 |

| ss | 秒,如51 |

| SSS | 毫秒,如984 |

| EEE | 星期,如Fri |

| EEEE | 星期,如Friday |

| zzz | 时区,如GMT+08:00 |

处理日期和时间的运算

在开发中,经常需要对日期和时间进行运算,比如计算两个日期之间的时间间隔、在当前日期基础上加减天数、判断某个日期是否在另一个日期之前等等。

Java中可以使用Calendar类来进行日期和时间的运算,提供了一系列方法来对日期和时间进行操作。

计算两个日期之间的时间间隔

代码实现:

Date date1 = new Date(1627569535000L);
Date date2 = new Date();
long milliseconds = date2.getTime() - date1.getTime();
long seconds = milliseconds / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;

System.out.println(days + "天" + hours % 24 + "小时" + minutes % 60 + "分钟" + seconds % 60 + "秒" + milliseconds % 1000 + "毫秒");

上述代码可以计算出当前时间和2021年7月30日22时12分15秒之间的时间间隔,输出结果如下:

0天0小时24分钟5秒479毫秒

在当前日期基础上加减天数

代码实现:

Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, 30);
date = calendar.getTime();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(date));

上述代码可以在当前日期的基础上加上30天,输出结果如下:

2021-08-29

判断某个日期是否在另一个日期之前

代码实现:

Date date1 = new Date(1627572864000L);
Date date2 = new Date(1627569535000L);
boolean before = date1.before(date2);
boolean after = date1.after(date2);
boolean equals = date1.equals(date2);

System.out.println(before + "," + after + "," + equals);

上述代码可以判断2021年7月30日22时21分04秒是否在2021年7月30日22时12分15秒之前,输出结果如下:

false,true,false

总结

Date类是Java中用来获取和处理日期和时间相关信息的类,可以通过构造函数和方法获取和处理日期和时间相关信息。同时,SimpleDateFormat类和Calendar类也可以用来对日期和时间进行格式化输出和运算。掌握这些方法可以帮助我们更好地进行日期和时间的处理。