废弃的方法(@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:SS

System.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.LocalDate

LocalDate localDate=now.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

// java.time.LocalDate -> java.sql.Date

Date newDate=java.sql.Date.valueOf(localDate);

System.out.printf("%1$tF %1$tT\n", newDate);

java calendar去掉时分秒_java 8:只取年月日的java.util.Date(时分秒清零)对象相关推荐

  1. 编写Java程序 堆栈的接口_java - 错误:调用实现接口的通用方法时,java.lang.AbstractMethodError - 堆栈内存溢出...

    我正在尝试使用javassist以编程方式创建和编译实现接口的类(在运行时). 每当我调用该动态类的实例时,都会收到以下错误消息: java.lang.AbstractMethodError: Foo ...

  2. java怎么给时间赋值_Java 8新时间日期库java.time的使用示例

    Instant--它代表的是时间戳 LocalDate--不包含具体时间的日期,比如 2020-01-14.它可以用来存储生日,周年纪念日,入职日期等. LocalTime--它代表的是不含日期的时间 ...

  3. java面试常见面试问题_Java面试准备:15个Java面试问题

    java面试常见面试问题 并非所有的访谈都将重点放在算法和数据结构上-通常,访谈通常只侧重于您声称是专家的语言或技术.在此类访谈中,通常没有任何"陷阱"问题,而是它们要求您利用内存 ...

  4. java度量衡换算器代码_Java开发笔记(四)Java帝国的度量衡

    秦始皇统一中国之后,实行"书同文,车同轨",把货币和各种度量衡都统一起来,从而缔造了一个秩序井然的帝国.既然统一度量衡是每个帝国都要做的事情,Java帝国也不例外,对于人生地不熟的 ...

  5. java 获取当前月日_Java获取当前时间年月日的方法

    本文实例为大家分享了java获取当前时间年月日的具体代码,供大家参考,具体内容如下 import java.text.ParseException; import java.text.SimpleDa ...

  6. java runtime是什么软件_Java SE Runtime Environment (JRE) 运行Java程序的必备软件

    Java SE Runtime Environment 运行Java程序的必备软件 因JAVA高度的安全性以及跨平台的特性,使得稳居网络应用程序语言的首选,这也使用得越来越多的程序员选择了Java,这 ...

  7. 世界java大神有哪些_JAVA基础复习1:开始Java世界的第一个程序

    之前,我已经安装好了Java,并且设置好了Java配置.那么来写一段进入Java世界的第一个程序. 1.打开记事本(曾经看过廖大神的一个博客,说是不建议使用Windows自带的记事本,因为有时候会添加 ...

  8. java数组使用实验报告_JAVA数组与类的定义-java实验报告

    JAVA数组与类的定义-java实验报告 JAVA数组与类的定义-java实验报告 .实验目的与要求 1. 熟悉Java类.对象和方法的一般操作练习等. 2. 熟悉数组等的定义和使用. 二.实验内容及 ...

  9. python 只取年月日 字符串_Python的数据类型

    数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...

最新文章

  1. 管理输入光标的 WIN32 API 函数
  2. 万物生长,万物互联的时代来了
  3. SQLite学习(三) - SQLite源代码文件结构
  4. Cuda中Global memory中coalescing例程解释
  5. 数组元素倒置-Java
  6. access 日期交集_Access重要知识点
  7. 知乎回答多线程爬虫案例
  8. 生成微信所有朋友合成的头像,来自网络GitHub,
  9. 公司打卡少几秒分析--学会拒绝,学会选择
  10. 分享3个整站打包程序
  11. EPS学习笔记2----------常用地物绘制基础
  12. android 计时器函数,如何在Android中设置计时器
  13. ruby语言+Devkit 工具
  14. python向网页上传excle、text文件
  15. 解密!区块链BaaS是什么?
  16. Rounded Numbers
  17. 【Nand2tetris】Project02
  18. 【模拟·习题】[USACO18JAN]Lifeguards S
  19. 红米note3全网通版刷机救砖 9008强刷(无需短接)
  20. Linux SWAP 交换分区配置说明(转)

热门文章

  1. C#给串口设备发送脉冲指令。DTR和RTS指令
  2. 全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点
  3. php 上传文件名乱码,php上传文件时文件名乱码怎么办
  4. 广东蓝桥杯c语言编译器_小软访谈之榜样充电站 千里之行,始于足下——“蓝桥杯”获奖者采访...
  5. php中的$_GET全局变量,通过URL传递参数
  6. LeetCode 25. K 个一组翻转链表
  7. 用于分子生成的数据高效性图语法学习
  8. RDKit | 基于RDKit和Python的阿斯利康ADME数据集分析
  9. CentOS 7 安装Boost 1.67及boost_python
  10. 基于机器学习的临床决策支持-ANN