【java基础——日期类】概述、总结
发布日期:2021-05-16 13:16:36 浏览次数:20 分类:精选文章

本文共 2646 字,大约阅读时间需要 8 分钟。

日期类及其应用

引导

作为一名经常做测试的小伙伴,你或许已经深入了解过以下代码:

System.currentTimeMillis() // 输出当前时间,以毫秒形式表示
long a = System.currentTimeMillis();
System.out.println(a);

运行结果如下:

2021-05-05 10:52:38.491

这个代码用于获取并输出当前时间,返回值为long类型。它常用于计算程序的运行时间,但不能指定任意日期。

我们需要其他类来处理日期时间问题。以下是常用的日期类及其应用。


常用日期类

1. Date类

Date类位于java.util包中。

获取当前日期:

Date d = new Date(); // 默认获取当前时间
System.out.println(d);

运行结果如下:

Tue May 05 10:52:38 CST 2021

指定时间:

long millis = 1622308783; // 毫秒数
Date d = new Date(millis);
System.out.println(d);

运行结果如下:

Wed May 05 10:52:38 CST 2021

2. SimpleDateFormat类

用于将Date对象格式化为字符串或从字符串解析Date对象。

格式化模式说明:

字符 含义
y
M
d
h 时(12小时制)
H 时(24小时制)
m
s
S 毫秒

例如:

// 格式化输出当前日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(new Date()));

运行结果如下:

2021-05-05

3. Calendar类

Calendar类也属于java.util包,用于处理日期时间操作。

获取当前日期:

Calendar c = Calendar.getInstance();
System.out.println(c);

运行结果如下:

Calendar: Tue May 05 10:52:38 CST 2021

设置时间:

可以通过多种方式设置日期和时间。例如:

// 设置日期为2021年2月22日
c.set(2021, 2, 22);
// 设置时间为11时30分
c.set(2021, 2, 22, 11, 30);

获取时间:

使用get方法提取日期和时间:

System.out.println(c.get(Calendar.HOUR_OF_DAY) + "时");
System.out.println(c.get(Calendar.MINUTE) + "分");
System.out.println(c.get(Calendar.SECOND) + "秒");

运行结果如下:

11时 30分 25秒

LocalDate、LocalTime 和 LocalDateTime

LocalDate类

LocalDate类位于java.time包,用于处理日期信息。

获取当前日期:

LocalDate.now();

运行结果如下:

2021-05-05

指定日期:

LocalDate.of(2021, 2, 22);

运行结果如下:

2021-02-22

获取日期信息:

LocalDate ld = LocalDate.now(ZoneId.of("Asia/Shanghai"));
System.out.println(ld.getYear() + "年");
System.out.println(ld.getMonthValue() + "月");
System.out.println(ld.getDayOfMonth() + "日");

运行结果如下:

2021年 2月 22日

LocalTime类

LocalTime类用于处理时间信息。

获取当前时间:

LocalTime.now();

运行结果如下:

12:22:22

指定时间:

LocalTime.of(12, 30, 22);

运行结果如下:

12:30:22

LocalDateTime类

LocalDateTime类用于处理完整日期和时间信息。

LocalDateTime.of(2021, 2, 22, 11, 30, 22);

运行结果如下:

2021-02-22 11:30:22

DateTimeFormatter类

用于格式化日期和时间。

解析字符串:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = formatter.parse("2021-05-06");
System.out.println(date);

运行结果如下:

2021-05-06

格式化字符串:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
String s = formatter.format(localDate);
System.out.println(s);

运行结果如下:

2021年05月06日

Period类

用于计算两个日期之间的时间差。

LocalDate localDate1 = LocalDate.of(2020, 5, 22);
LocalDate localDate2 = LocalDate.of(2021, 2, 24);
Period period = Period.between(localDate1, localDate2);
System.out.println(period.getYears() + "年");
System.out.println(period.getMonths() + "个月");
System.out.println(period.getDays() + "天");

运行结果如下:

1年 7个月 33天

总结

以上类和方法提供了从简单到复杂的日期时间处理能力。选择合适的类和方法,根据需求灵活配置,能够实现对日期时间的精确控制和展示。

上一篇:【Java基础——数字相关类】Math、Random、SecureRandom概述、练习
下一篇:【Python基础——语言概述】语言简介、语言规范、安装扩展库、库的导入与使用

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月12日 07时00分20秒