java calendar去掉时分秒_java 8:只取年月日的java.util.Date(时分秒清零)对象
废弃的方法(@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(时分秒清零)对象相关推荐
- 编写Java程序 堆栈的接口_java - 错误:调用实现接口的通用方法时,java.lang.AbstractMethodError - 堆栈内存溢出...
我正在尝试使用javassist以编程方式创建和编译实现接口的类(在运行时). 每当我调用该动态类的实例时,都会收到以下错误消息: java.lang.AbstractMethodError: Foo ...
- java怎么给时间赋值_Java 8新时间日期库java.time的使用示例
Instant--它代表的是时间戳 LocalDate--不包含具体时间的日期,比如 2020-01-14.它可以用来存储生日,周年纪念日,入职日期等. LocalTime--它代表的是不含日期的时间 ...
- java面试常见面试问题_Java面试准备:15个Java面试问题
java面试常见面试问题 并非所有的访谈都将重点放在算法和数据结构上-通常,访谈通常只侧重于您声称是专家的语言或技术.在此类访谈中,通常没有任何"陷阱"问题,而是它们要求您利用内存 ...
- java度量衡换算器代码_Java开发笔记(四)Java帝国的度量衡
秦始皇统一中国之后,实行"书同文,车同轨",把货币和各种度量衡都统一起来,从而缔造了一个秩序井然的帝国.既然统一度量衡是每个帝国都要做的事情,Java帝国也不例外,对于人生地不熟的 ...
- java 获取当前月日_Java获取当前时间年月日的方法
本文实例为大家分享了java获取当前时间年月日的具体代码,供大家参考,具体内容如下 import java.text.ParseException; import java.text.SimpleDa ...
- java runtime是什么软件_Java SE Runtime Environment (JRE) 运行Java程序的必备软件
Java SE Runtime Environment 运行Java程序的必备软件 因JAVA高度的安全性以及跨平台的特性,使得稳居网络应用程序语言的首选,这也使用得越来越多的程序员选择了Java,这 ...
- 世界java大神有哪些_JAVA基础复习1:开始Java世界的第一个程序
之前,我已经安装好了Java,并且设置好了Java配置.那么来写一段进入Java世界的第一个程序. 1.打开记事本(曾经看过廖大神的一个博客,说是不建议使用Windows自带的记事本,因为有时候会添加 ...
- java数组使用实验报告_JAVA数组与类的定义-java实验报告
JAVA数组与类的定义-java实验报告 JAVA数组与类的定义-java实验报告 .实验目的与要求 1. 熟悉Java类.对象和方法的一般操作练习等. 2. 熟悉数组等的定义和使用. 二.实验内容及 ...
- python 只取年月日 字符串_Python的数据类型
数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...
最新文章
- 管理输入光标的 WIN32 API 函数
- 万物生长,万物互联的时代来了
- SQLite学习(三) - SQLite源代码文件结构
- Cuda中Global memory中coalescing例程解释
- 数组元素倒置-Java
- access 日期交集_Access重要知识点
- 知乎回答多线程爬虫案例
- 生成微信所有朋友合成的头像,来自网络GitHub,
- 公司打卡少几秒分析--学会拒绝,学会选择
- 分享3个整站打包程序
- EPS学习笔记2----------常用地物绘制基础
- android 计时器函数,如何在Android中设置计时器
- ruby语言+Devkit 工具
- python向网页上传excle、text文件
- 解密!区块链BaaS是什么?
- Rounded Numbers
- 【Nand2tetris】Project02
- 【模拟·习题】[USACO18JAN]Lifeguards S
- 红米note3全网通版刷机救砖 9008强刷(无需短接)
- Linux SWAP 交换分区配置说明(转)
热门文章
- C#给串口设备发送脉冲指令。DTR和RTS指令
- 全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点
- php 上传文件名乱码,php上传文件时文件名乱码怎么办
- 广东蓝桥杯c语言编译器_小软访谈之榜样充电站 千里之行,始于足下——“蓝桥杯”获奖者采访...
- php中的$_GET全局变量,通过URL传递参数
- LeetCode 25. K 个一组翻转链表
- 用于分子生成的数据高效性图语法学习
- RDKit | 基于RDKit和Python的阿斯利康ADME数据集分析
- CentOS 7 安装Boost 1.67及boost_python
- 基于机器学习的临床决策支持-ANN