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

包含了年月日,时分秒的加和减。Date中如果要进行加减,必须使用Calendar才可以。现在通过将Date转换为LocalDateTime,就能非常方便,线程安全的加减年月日,时分秒等信息。
// plus two times
public static Date plusYears(Date date, long amountToAdd){
return plus(date, ChronoUnit.YEARS, amountToAdd);
}
public static LocalDateTime plusYears(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) plus(localDateTime, ChronoUnit.YEARS, amountToAdd);
}
public static LocalDate plusYears(LocalDate localDate, long amountToAdd){
return (LocalDate) plus(localDate, ChronoUnit.YEARS, amountToAdd);
}
public static Date plusMonths(Date date, long amountToAdd){
return plus(date, ChronoUnit.MONTHS, amountToAdd);
}
public static LocalDateTime plusMonths(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) plus(localDateTime, ChronoUnit.MONTHS, amountToAdd);
}
public static LocalDate plusMonths(LocalDate localDate, long amountToAdd){
return (LocalDate) plus(localDate, ChronoUnit.MONTHS, amountToAdd);
}
public static Date plusWeeks(Date date, long amountToAdd){
return plus(date, ChronoUnit.WEEKS, amountToAdd);
}
public static LocalDateTime plusWeeks(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) plus(localDateTime, ChronoUnit.WEEKS, amountToAdd);
}
public static LocalDate plusWeeks(LocalDate localDate, long amountToAdd){
return (LocalDate) plus(localDate, ChronoUnit.WEEKS, amountToAdd);
}
public static Date plusDays(Date date, long amountToAdd){
return plus(date, ChronoUnit.DAYS, amountToAdd);
}
public static LocalDateTime plusDays(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) plus(localDateTime, ChronoUnit.DAYS, amountToAdd);
}
public static LocalDate plusDays(LocalDate localDate, long amountToAdd){
return (LocalDate) plus(localDate, ChronoUnit.DAYS, amountToAdd);
}
public static Date plusHours(Date date, long amountToAdd){
return plus(date, ChronoUnit.HOURS, amountToAdd);
}
public static LocalDateTime plusHours(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) plus(localDateTime, ChronoUnit.HOURS, amountToAdd);
}
public static LocalTime plusHours(LocalTime localTime, long amountToAdd){
return (LocalTime) plus(localTime, ChronoUnit.HOURS, amountToAdd);
}
public static Date plusMinutes(Date date, long amountToAdd){
return plus(date, ChronoUnit.MINUTES, amountToAdd);
}
public static LocalDateTime plusMinutes(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) plus(localDateTime, ChronoUnit.MINUTES, amountToAdd);
}
public static LocalTime plusMinutes(LocalTime localTime, long amountToAdd){
return (LocalTime) plus(localTime, ChronoUnit.MINUTES, amountToAdd);
}
public static Date plusSeconds(Date date, long amountToAdd){
return plus(date, ChronoUnit.SECONDS, amountToAdd);
}
public static LocalDateTime plusSeconds(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) plus(localDateTime, ChronoUnit.SECONDS, amountToAdd);
}
public static LocalTime plusSeconds(LocalTime localTime, long amountToAdd){
return (LocalTime) plus(localTime, ChronoUnit.SECONDS, amountToAdd);
}
// minus two times
public static Date minusYears(Date date, long amountToAdd){
return minus(date, ChronoUnit.YEARS, amountToAdd);
}
public static LocalDateTime minusYears(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) minus(localDateTime, ChronoUnit.YEARS, amountToAdd);
}
public static LocalDate minusYears(LocalDate localDate, long amountToAdd){
return (LocalDate) minus(localDate, ChronoUnit.YEARS, amountToAdd);
}
public static Date minusMonths(Date date, long amountToAdd){
return minus(date, ChronoUnit.MONTHS, amountToAdd);
}
public static LocalDateTime minusMonths(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) minus(localDateTime, ChronoUnit.MONTHS, amountToAdd);
}
public static LocalDate minusMonths(LocalDate localDate, long amountToAdd){
return (LocalDate) minus(localDate, ChronoUnit.MONTHS, amountToAdd);
}
public static Date minusWeeks(Date date, long amountToAdd){
return minus(date, ChronoUnit.WEEKS, amountToAdd);
}
public static LocalDateTime minusWeeks(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) minus(localDateTime, ChronoUnit.WEEKS, amountToAdd);
}
public static LocalDate minusWeeks(LocalDate localDate, long amountToAdd){
return (LocalDate) minus(localDate, ChronoUnit.WEEKS, amountToAdd);
}
public static Date minusDays(Date date, long amountToAdd){
return minus(date, ChronoUnit.DAYS, amountToAdd);
}
public static LocalDateTime minusDays(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) minus(localDateTime, ChronoUnit.DAYS, amountToAdd);
}
public static LocalDate minusDays(LocalDate localDate, long amountToAdd){
return (LocalDate) minus(localDate, ChronoUnit.DAYS, amountToAdd);
}
public static Date minusHours(Date date, long amountToAdd){
return minus(date, ChronoUnit.HOURS, amountToAdd);
}
public static LocalDateTime minusHours(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) minus(localDateTime, ChronoUnit.HOURS, amountToAdd);
}
public static LocalTime minusHours(LocalTime localTime, long amountToAdd){
return (LocalTime) minus(localTime, ChronoUnit.HOURS, amountToAdd);
}
public static Date minusMinutes(Date date, long amountToAdd){
return minus(date, ChronoUnit.MINUTES, amountToAdd);
}
public static LocalDateTime minusMinutes(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) minus(localDateTime, ChronoUnit.MINUTES, amountToAdd);
}
public static LocalTime minusMinutes(LocalTime localTime, long amountToAdd){
return (LocalTime) minus(localTime, ChronoUnit.MINUTES, amountToAdd);
}
public static Date minusSeconds(Date date, long amountToAdd){
return minus(date, ChronoUnit.SECONDS, amountToAdd);
}
public static LocalDateTime minusSeconds(LocalDateTime localDateTime, long amountToAdd){
return (LocalDateTime) minus(localDateTime, ChronoUnit.SECONDS, amountToAdd);
}
public static LocalTime minusSeconds(LocalTime localTime, long amountToAdd){
return (LocalTime) minus(localTime, ChronoUnit.SECONDS, amountToAdd);
}
测试类:
@Test
public void dateCalculatorPlusTest(){
Date date = new Date();
System.out.println(date);
System.out.println(DateTimeConverterUtil.toLocalDateTime(date)); System.out.println(DateTimeCalculatorUtil.plusYears(date, 1));
System.out.println(DateTimeCalculatorUtil.plusMonths(date, 1));
System.out.println(DateTimeCalculatorUtil.plusWeeks(date, 1));
System.out.println(DateTimeCalculatorUtil.plusDays(date, 1));
System.out.println(DateTimeCalculatorUtil.plusHours(date, 1));
System.out.println(DateTimeCalculatorUtil.plusMinutes(date, 1));
System.out.println(DateTimeCalculatorUtil.plusSeconds(date, 1));
} @Test
public void dateCalculatorMinusTest(){
Date date = new Date();
System.out.println(date);
System.out.println(DateTimeConverterUtil.toLocalDateTime(date)); System.out.println(DateTimeCalculatorUtil.minusYears(date, 1));
System.out.println(DateTimeCalculatorUtil.minusMonths(date, 1));
System.out.println(DateTimeCalculatorUtil.minusWeeks(date, 1));
System.out.println(DateTimeCalculatorUtil.minusDays(date, 1));
System.out.println(DateTimeCalculatorUtil.minusHours(date, 1));
System.out.println(DateTimeCalculatorUtil.minusMinutes(date, 1));
System.out.println(DateTimeCalculatorUtil.minusSeconds(date, 1));
} @Test
public void dateCalculatorPlusTest2(){
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt); System.out.println(DateTimeCalculatorUtil.plusYears(ldt, 1));
System.out.println(DateTimeCalculatorUtil.plusMonths(ldt, 1));
System.out.println(DateTimeCalculatorUtil.plusWeeks(ldt, 1));
System.out.println(DateTimeCalculatorUtil.plusDays(ldt, 1));
System.out.println(DateTimeCalculatorUtil.plusHours(ldt, 1));
System.out.println(DateTimeCalculatorUtil.plusMinutes(ldt, 1));
System.out.println(DateTimeCalculatorUtil.plusSeconds(ldt, 1));
} @Test
public void dateCalculatorMinusTest2(){
LocalDateTime ldt = LocalDateTime.now();
System.out.println(ldt); System.out.println(DateTimeCalculatorUtil.minusYears(ldt, 1));
System.out.println(DateTimeCalculatorUtil.minusMonths(ldt, 1));
System.out.println(DateTimeCalculatorUtil.minusWeeks(ldt, 1));
System.out.println(DateTimeCalculatorUtil.minusDays(ldt, 1));
System.out.println(DateTimeCalculatorUtil.minusHours(ldt, 1));
System.out.println(DateTimeCalculatorUtil.minusMinutes(ldt, 1));
System.out.println(DateTimeCalculatorUtil.minusSeconds(ldt, 1));
}
输出:
Wed Feb 05 14:27:30 CST 2020
2020-02-05T14:27:30.398
Fri Feb 05 14:27:30 CST 2021
Thu Mar 05 14:27:30 CST 2020
Wed Feb 12 14:27:30 CST 2020
Thu Feb 06 14:27:30 CST 2020
Wed Feb 05 15:27:30 CST 2020
Wed Feb 05 14:28:30 CST 2020
Wed Feb 05 14:27:31 CST 2020
Wed Feb 05 14:27:43 CST 2020
2020-02-05T14:27:43.498
Tue Feb 05 14:27:43 CST 2019
Sun Jan 05 14:27:43 CST 2020
Wed Jan 29 14:27:43 CST 2020
Tue Feb 04 14:27:43 CST 2020
Wed Feb 05 13:27:43 CST 2020
Wed Feb 05 14:26:43 CST 2020
Wed Feb 05 14:27:42 CST 2020
2020-02-05T14:27:54.747
2021-02-05T14:27:54.747
2020-03-05T14:27:54.747
2020-02-12T14:27:54.747
2020-02-06T14:27:54.747
2020-02-05T15:27:54.747
2020-02-05T14:28:54.747
2020-02-05T14:27:55.747
2020-02-05T14:27:54.747
2021-02-05T14:27:54.747
2020-03-05T14:27:54.747
2020-02-12T14:27:54.747
2020-02-06T14:27:54.747
2020-02-05T15:27:54.747
2020-02-05T14:28:54.747
2020-02-05T14:27:55.747
源代码地址:https://github.com/xkzhangsan/xk-time
Java日期时间API系列15-----Jdk8中java.time包中的新的日期时间API类,java日期计算2,年月日时分秒的加减等的更多相关文章
- 时间格式的转化 vue与js 年月日 时分秒
首先使用原生转化的方法 第一种 //时间转换 dateStr(d, sign) { //如果没有传递符号,给一个默认的符号 if (!sign) { sign = '-' } //获取d里面年月日时分 ...
- JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;
学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 ...
- 在vue项目中显示实时时间(年月日时分秒)
1.在data中定义一个变量,存储时间 data(){ return { nowTime:'' } }, 2.给定一个div <div>{{nowTime}}</div> 3. ...
- js获取当前时间的年月日时分秒以及时间的格式化
1.获取当前时间 var myDate = new Date(); 2.获取时间中的年月日时分秒 myDate.getYear(); // 获取当前年份(2位) myDate.getFullYear( ...
- Sql 中获取年月日时分秒的函数
getdate():获取系统当前时间 dateadd(datepart,number,date):计算在一个时间的基础上增加一个时间后的新时间值,比如:dateadd(yy,30,getdate()) ...
- jsp中/el表达式中将后台传来的时间戳格式化为年月日时分秒
sp中/el表达式中将后台传来的时间戳格式化为年月日时分秒1.引入相关标签库 <%@taglib prefix="c" uri="http://java.sun.c ...
- 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 ...
- 在swt中获取jar包中的文件 uri is not hierarchical
uri is not hierarchical 学习了:http://blog.csdn.net/zdsdiablo/article/details/1519719 在swt中获取jar包中的文件: ...
- C语言 - 获取系统时间 以年月日时分秒的形式输出
ESP32需要给下位机通过UART发送时间戳,形式是年月日时分秒的十六进制数据包. #include <stdio.h> #include <time.h> int main( ...
随机推荐
- 【Tycoon City New York】城市梦想家: 纽约 作弊键说明
这游戏是自带快捷键作弊功能的 [Ctrl] + [Alt] + A 加10,000人口 [Ctrl] + [Alt] + C 加$1,000,000资金 [Ctrl] + [Alt] + B 加100 ...
- 【转载】 tensorflow batch_normalization的正确使用姿势
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/computerme/article/de ...
- MindSpore 建立神经网络
代码原地址: https://www.mindspore.cn/tutorial/zh-CN/r1.2/model.html 建立神经网络: import mindspore.nn as nn cla ...
- 如何修复ubuntu的uefi启动——如何将Ubuntu安装入移动硬盘中
交代一下使用场景,个人平时经常使用Ubuntu系统,由于不喜欢总在一个地方呆但是来回搬电脑又不是十分的方便,于是想到了一个好的方案,那就是把Ubuntu系统安装到移动硬盘中,这样不论是在家还是在实验室 ...
- 【客户案例】白鲸开源WhaleStudio助力某证券公司打造全面数据解决方案:探析DataOps平台革新与应用
背景 近年来随着国际形势的变化,信创产业成为我国国家战略的一部分.一直以来,一直以来,全球 ICT 产业底层标准.架构.产品.生态等要素均由国外公司或机构制定和控制,使我国 ICT 产业乃至广大用户面 ...
- 在 React 项目中 Editable Table 的实现
我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:佳岚 可编辑表格在数栈产品中是一种比较常见的表单数据交互方 ...
- .net5调用WebService简单事例
1. 创建 .net5控制台项目: dotnet new console -o WebServiceConsole 2. 添加全局工具 dotnet tool install --global dot ...
- 【牛客刷题】HJ6 质数因子
题目链接 这道题本身更多的是考察如何计算一个数的质数因子,更像是一道数学题,用到了循环的方法: package main import ( "fmt" "math&quo ...
- fs4412 I2C驱动基于Cortex-A9,mpu6050裸机程序,驱动,I2C架构,有这一篇够了
本文基于三星Cortex-A9架构,Exynos4412讲解I2C原理.以及基于I2C的mpu6050陀螺仪的数据读取实例(包括在裸机模式下数据的读取以及基于Linux驱动的读取).还会分析Linux ...
- 官网使用conda&pip安装PyTorch命令总结(包含各版本)
原网页https://pytorch.org/get-started/previous-versions/ 因为有时访问该网站比较慢,所以本博客记录该网页内容 Installing previous ...