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 ...
随机推荐
- SpringBoot2.7 霸王硬上弓 Logback1.3 → 不甜但解渴
开心一刻 一大早,她就发消息质问我 她:你给我老实交代,昨晚去哪鬼混了? 我:没有,就哥几个喝了点酒 她:那我给你打了那么多视频,为什么不接? 我:不太方便呀 她:我不信,和你哥们儿喝酒有啥不方便接视 ...
- Jmeter函数助手-自带函数汇总
Jmeter函数助手自带函数汇总(Jmeter官网-函数助手详解:https://jmeter.apache.org/usermanual/functions.html) BeanShell:用于简单 ...
- 1、Git简介
1.1.概述 Git 是一个开源免费的分布式版本控制系统,用于快速高效地管理各种小型或大型项目的代码. Git 不仅容易学习.占用空间小,而且性能快如闪电. Git 具有廉价的本地分支.方便的暂存区域 ...
- 【ECharts】02 饼图
饼状图: <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="width: 600px;he ...
- 由于美国的制程限制,假如我国的同等性能的AI芯片5年内无法实现量产化我们应该如何发展我们的AI领域的基础设施呢?
相关: 美晶片禁令面難題!封過頭反把市場送中國? 今年华为公司推出了mate pro60手机,可以说我们可以实现7nm芯片的制造了,但是要注意,我们在实现7nm芯片制造的时候使用的应该依旧是被美国限制 ...
- 如何使用深度学习技术探测代码逻辑死循环 —— 浪潮集团的“公开号CN117271314A”专利
专利公开号: CN117271314A 新闻链接: https://mbd.baidu.com/newspage/data/landingsuper?context={"nid"% ...
- 【转载】 vscode如何在最新版本中配置c/c++语言环境中的launch.json和tasks.json?
作者:来知晓链接:https://www.zhihu.com/question/336266287/answer/2144611720来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- 聚焦OLAP性能提升,火山引擎ByteHouse发布六大场景解决方案
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群. 性能在数据分析中至关重要,它直接决定数据处理的效率与及时性,进一步对数据驱动的企业决策造成影响. 举个例 ...
- .NET 8 + Blazor 多租户、模块化、DDD框架、开箱即用
前言 基于 .NET 8 的开源项目,主要使用 WebAPI + Blazor 支持多租户和模块化设计,DDD构建.可以帮助我们轻松地搭建起一个功能完善的Web应用程序.除了帮助你快速构建应用程序之外 ...
- Go进程内存占用那些事(二)
0x01 最简单的Go程序 package main import ( "fmt" "time" ) func main() { fmt.Println(&qu ...