
【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天
总结
以上类和方法提供了从简单到复杂的日期时间处理能力。选择合适的类和方法,根据需求灵活配置,能够实现对日期时间的精确控制和展示。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月12日 07时00分20秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
NSNotification、delegate和KVO的区别
2019-03-21
Rhino简介
2019-03-21
JS代码执行顺序
2019-03-21
免费好用的证件扫描仪-扫描全能王
2019-03-21
自定义拦截器
2019-03-21
自定义拦截器
2019-03-21
Eclipse 代码规范配置
2019-03-21
Kafka Producer机制优化-提高发送消息可靠性
2019-03-21
面试题5:(事务管理) ACID 是什么?
2019-03-21
ASCII码表
2019-03-21
10.Mybatis执行流程
2019-03-21
【车间调度】遗传算法求解混合流水车间调度最优问题【Matlab 017期】
2019-03-21
Oracle 一张表里面按照一个字段值将所有的数据按逗号拆分,变为多行数据
2019-03-21
DRF框架(十四)——过滤Filtering,排序
2019-03-21
【ucosII】4.事件管理
2019-03-21
【ucosII】5.消息队列
2019-03-21
阿里云网盘注册邀请码怎么获得,阿里云网盘注册邀请码获得内测方法
2019-03-21
Jmeter函数与变量使用详解(下)-32
2019-03-21
linux 基础-变量,shell基本语法
2019-03-21
opencv图像处理学习(六十)——系统函数
2019-03-21