Java日期时间API系列16-----Jdk8中java.time包中的新的日期时间API类,java日期计算3,日期中年月日时分秒的属性值修改等
通过Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析 ,可以看出java8设计非常好,实现接口Temporal, TemporalAdjuster, ChronoLocalDate等,有非常丰富的方法。例如:LocalDateTime:的部分方法:

包含了年月日,时分秒的属性值修改。Date中如果要进行属性值修改,必须使用Calendar才可以。现在通过将Date转换为LocalDateTime,就能非常方便,线程安全的年月日,时分秒等属性值修改。
// modify property public static Date withYear(Date date, long newValue){ return with(date, ChronoField.YEAR, newValue); } public static LocalDateTime withYear(LocalDateTime localDateTime, long newValue){ return (LocalDateTime) with(localDateTime, ChronoField.YEAR, newValue); } public static LocalDate withYear(LocalDate localDate, long newValue){ return (LocalDate) with(localDate, ChronoField.YEAR, newValue); } public static Date withMonth(Date date, long newValue){ return with(date, ChronoField.MONTH_OF_YEAR, newValue); } public static LocalDateTime withMonth(LocalDateTime localDateTime, long newValue){ return (LocalDateTime) with(localDateTime, ChronoField.MONTH_OF_YEAR, newValue); } public static LocalDate withMonth(LocalDate localDate, long newValue){ return (LocalDate) with(localDate, ChronoField.MONTH_OF_YEAR, newValue); } public static Date withDayOfMonth(Date date, long newValue){ return with(date, ChronoField.DAY_OF_MONTH, newValue); } public static LocalDateTime withDayOfMonth(LocalDateTime localDateTime, long newValue){ return (LocalDateTime) with(localDateTime, ChronoField.DAY_OF_MONTH, newValue); } public static LocalDate withDayOfMonth(LocalDate localDate, long newValue){ return (LocalDate) with(localDate, ChronoField.DAY_OF_MONTH, newValue); } public static Date withDayOfYear(Date date, long newValue){ return with(date, ChronoField.DAY_OF_YEAR, newValue); } public static LocalDateTime withDayOfYear(LocalDateTime localDateTime, long newValue){ return (LocalDateTime) with(localDateTime, ChronoField.DAY_OF_YEAR, newValue); } public static LocalDate withDayOfYear(LocalDate localDate, long newValue){ return (LocalDate) with(localDate, ChronoField.DAY_OF_YEAR, newValue); } public static Date withHour(Date date, long newValue){ return with(date, ChronoField.HOUR_OF_DAY, newValue); } public static LocalDateTime withHour(LocalDateTime localDateTime, long newValue){ return (LocalDateTime) with(localDateTime, ChronoField.HOUR_OF_DAY, newValue); } public static LocalTime withHour(LocalTime localTime, long newValue){ return (LocalTime) with(localTime, ChronoField.HOUR_OF_DAY, newValue); } public static Date withMinute(Date date, long newValue){ return with(date, ChronoField.MINUTE_OF_HOUR, newValue); } public static LocalDateTime withMinute(LocalDateTime localDateTime, long newValue){ return (LocalDateTime) with(localDateTime, ChronoField.MINUTE_OF_HOUR, newValue); } public static LocalTime withMinute(LocalTime localTime, long newValue){ return (LocalTime) with(localTime, ChronoField.MINUTE_OF_HOUR, newValue); } public static Date withSecond(Date date, long newValue){ return with(date, ChronoField.SECOND_OF_MINUTE, newValue); } public static LocalDateTime withSecond(LocalDateTime localDateTime, long newValue){ return (LocalDateTime) with(localDateTime, ChronoField.SECOND_OF_MINUTE, newValue); } public static LocalTime withSecond(LocalTime localTime, long newValue){ return (LocalTime) with(localTime, ChronoField.SECOND_OF_MINUTE, newValue); }
测试类:
@Test public void dateCalculatorWithTest(){ Date date = new Date(); System.out.println(date); System.out.println(DateTimeConverterUtil.toLocalDateTime(date)); System.out.println(DateTimeCalculatorUtil.getDayOfYear(date)); System.out.println(DateTimeCalculatorUtil.withYear(date, 2021)); System.out.println(DateTimeCalculatorUtil.withMonth(date, 3)); System.out.println(DateTimeCalculatorUtil.withDayOfMonth(date, 6)); System.out.println(DateTimeCalculatorUtil.withDayOfYear(date, 37)); System.out.println(DateTimeCalculatorUtil.withHour(date, 17)); System.out.println(DateTimeCalculatorUtil.withMinute(date, 30)); System.out.println(DateTimeCalculatorUtil.withSecond(date, 30)); } @Test public void dateCalculatorWithTest2(){ LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); System.out.println(ldt.getDayOfYear()); System.out.println(DateTimeCalculatorUtil.withYear(ldt, 2021)); System.out.println(DateTimeCalculatorUtil.withMonth(ldt, 3)); System.out.println(DateTimeCalculatorUtil.withDayOfMonth(ldt, 6)); System.out.println(DateTimeCalculatorUtil.withDayOfYear(ldt, 37)); System.out.println(DateTimeCalculatorUtil.withHour(ldt, 17)); System.out.println(DateTimeCalculatorUtil.withMinute(ldt, 30)); System.out.println(DateTimeCalculatorUtil.withSecond(ldt, 30)); }
输出:
Wed Feb 05 16:20:47 CST 20202020-02-05T16:20:47.95536Fri Feb 05 16:20:47 CST 2021Thu Mar 05 16:20:47 CST 2020Thu Feb 06 16:20:47 CST 2020Thu Feb 06 16:20:47 CST 2020Wed Feb 05 17:20:47 CST 2020Wed Feb 05 16:30:47 CST 2020Wed Feb 05 16:20:30 CST 2020
2020-02-05T16:21:03.760362021-02-05T16:21:03.7602020-03-05T16:21:03.7602020-02-06T16:21:03.7602020-02-06T16:21:03.7602020-02-05T17:21:03.7602020-02-05T16:30:03.7602020-02-05T16:21:30.760
源代码地址:https://github.com/xkzhangsan/xk-time
Java日期时间API系列16-----Jdk8中java.time包中的新的日期时间API类,java日期计算3,日期中年月日时分秒的属性值修改等的更多相关文章
- JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;
学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 ...
- 在vue项目中显示实时时间(年月日时分秒)
1.在data中定义一个变量,存储时间 data(){ return { nowTime:'' } }, 2.给定一个div <div>{{nowTime}}</div> 3. ...
- Sql 中获取年月日时分秒的函数
getdate():获取系统当前时间 dateadd(datepart,number,date):计算在一个时间的基础上增加一个时间后的新时间值,比如:dateadd(yy,30,getdate()) ...
- js获取当前时间的年月日时分秒以及时间的格式化
1.获取当前时间 var myDate = new Date(); 2.获取时间中的年月日时分秒 myDate.getYear(); // 获取当前年份(2位) myDate.getFullYear( ...
- jsp中/el表达式中将后台传来的时间戳格式化为年月日时分秒
sp中/el表达式中将后台传来的时间戳格式化为年月日时分秒1.引入相关标签库 <%@taglib prefix="c" uri="http://java.sun.c ...
- C语言 - 获取系统时间 以年月日时分秒的形式输出
ESP32需要给下位机通过UART发送时间戳,形式是年月日时分秒的十六进制数据包. #include <stdio.h> #include <time.h> int main( ...
- 时间格式的转化 vue与js 年月日 时分秒
首先使用原生转化的方法 第一种 //时间转换 dateStr(d, sign) { //如果没有传递符号,给一个默认的符号 if (!sign) { sign = '-' } //获取d里面年月日时分 ...
- Swift3.0 iOS获取当前时间 - 年月日时分秒星期
Swift3.0 iOS获取当前时间 - 年月日时分秒星期func getTimes() -> [Int] { var timers: [Int] = [] // 返回的数组 let calen ...
- [置顶] java得到前一个月的年月日时分秒
import java.util.Calendar; /** * 得到前一个月的年月日时分秒 * @author Mr.hu * 2013-6-28上午12:00:35 * Class Explain ...
- jquery获取年月日时分秒当前时间
获取年月日时分秒的当前时间,可按照某种格式显示出来,下面是一种得到如2017年02月02日 00:00:00格式的当前时间 function getCurrentDate(date){ var y ...
随机推荐
- Microsoft Dynamics CRM 高级查找不能搜索实体的解决方案(浏览器插件)
背景 我们搜索某个实体的记录的时候,一般会去对应的视图"可用的XXX",但是视图自带的条件过滤了一些数据,或者缺少了我们所需要的列,或者不能查询关联实体.这时候我们需要用到高级查找 ...
- SemanticKernel/C#:检索增强生成(RAG)简易实践
检索增强生成(RAG)是什么? RAG是"Reference-based Generative model with Attention"的缩写,也可以被称为"Retri ...
- 【Java】JDBC Part5 DataSource 连接池操作
JDBC Part5 DataSource 连接池操作 - javax.sql.DataSource 接口,通常由服务器实现 - DBCP Tomcat自带相对C3P0速度较快,但存在BUG,已经不更 ...
- 【Scala】02 循环
1.支持集合直接作为循环体的条件: // - - - - 支持集合遍历 - - - - var arr = Array(10, 20, 30) var arr2 = List(10, 20, 30) ...
- 【SQL】列转字符串函数
还是这个需求 主界面的列表表格是直接在后台用SQL查出来的 public String getQuerySql(ElemBean condition, List<Object> param ...
- 切记:使用nvidia omniverse时一定要用2T的固态硬盘
最近在用nvidia omniverse时突然发现这样的一个问题,那就是这个软件实在是太太了,一个组件就4个多GB大小,如果安装几个组件后那么几十GB的硬盘就没有了,同时由于这个体积太大,因此再启动和 ...
- 再探 游戏 《 2048 》 —— AI方法—— 缘起、缘灭(4) —— state-of-the-art
<2048>游戏在线试玩地址: https://play2048.co/ 该游戏的解法比较不错的资料为外网的一个讨论帖子: What is the optimal algorithm fo ...
- php 开发日常收获
最近项目需求: 仿制某网站的菜单功能 效果如下: 效果大概就是这样啦.分析下吧:主要是分级查询我的思路:首先从数据库中查询所有的顶级目录: 目前就是这几个顶级目录在数据库中特点就是 父级id是0(一般 ...
- QT的基础设置(菜单栏、状态栏、任务栏。。。。)
Qt [1] 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器.下面介绍QT的基础配置 1 ...
- 018.CentOS升级内核
一 更新yum源 1 [root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2 [root@lo ...