博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 8:只取年月日的java.util.Date(时分秒清零)对象
阅读量:2172 次
发布时间:2019-05-01

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

废弃的方法(@Deprecated)

如果不想要java.util.Date中的时分秒数据,希望将它清零,只保留年月日,最简单的办法是

调用setHours,setMinutes,setSeconds方法清零。

Date now = new Date();now.setHours(0);now.setMinutes(0);now.setSeconds(0);// 输出Date的日期和时间部分 yyyy-MM-dd HH:MM:SSSystem.out.printf("%1$tF %1$tT\n",now);

不过这些方法已经被弃用了,但对绝大部分系统,都没问题。

如果讲究点儿,还是遵循建议不用为好。

java.util.Calendar

既然不建议用Date中的setHours,setMinutes,setSeconds方法对时分秒清零,java的代码中也提示了,可以改用Calendar.set(int field, int value)方法来对指定的域清零

Date now = new Date();Calendar cal1 = Calendar.getInstance();cal1.setTime(now);// 将时分秒,毫秒域清零cal1.set(Calendar.HOUR_OF_DAY, 0);cal1.set(Calendar.MINUTE, 0);cal1.set(Calendar.SECOND, 0);cal1.set(Calendar.MILLISECOND, 0);System.out.printf("%1$tF %1$tT\n", cal1.getTime());// cal1.getTime()返回的Date已经是更新后的对象

java.time.LocalDate

上面的办法略显复杂啊,有没有理想简洁的途径让我少写点代码呢?

java8提供了一个新的类LocalDate,是一个不包含时区,ISO-8601 格式的日期类(比如 “2016-12-28”),LocalDate对象是个只读取的(immutable class),java.util.Date可以转换为LocalDate。
java.sql.Date是java.util.Date的子类,是为了配合SQL DATE而设置的数据类型。java.sql.Date只包含年月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD。
在java8中LocalDate可以转换成java.sql.Date
这两者一结合,也就可以将Date转换为时分秒清零0的对象,而且代码更简洁,一行就能搞定。

Date now = new Date();// java.util.Date -> java.time.LocalDateLocalDate localDate=now.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();// java.time.LocalDate -> java.sql.DateDate newDate=java.sql.Date.valueOf(localDate);System.out.printf("%1$tF %1$tT\n", newDate);

参考资料:

转载地址:http://ubrzb.baihongyu.com/

你可能感兴趣的文章
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>
几个简单的SQL例子
查看>>
日本語の記号の読み方
查看>>
计算机英语编程中一些单词
查看>>
JavaScript 经典例子
查看>>
判断数据的JS代码
查看>>
js按键事件说明
查看>>
AJAX 初次体验!推荐刚学看这个满好的!
查看>>
AJAX 设计制作 在公司弄的 非得要做出这个养的 真晕!
查看>>
Linux 查看文件大小
查看>>
Java并发编程:线程池的使用
查看>>
redis单机及其集群的搭建
查看>>
Java多线程学习
查看>>
检查Linux服务器性能
查看>>
Java 8新的时间日期库
查看>>
Chrome开发者工具
查看>>
【LEETCODE】102-Binary Tree Level Order Traversal
查看>>
【LEETCODE】106-Construct Binary Tree from Inorder and Postorder Traversal
查看>>
【LEETCODE】202-Happy Number
查看>>