当前位置:网站首页>LocalDateTime的详细使用方法
LocalDateTime的详细使用方法
2022-08-04 21:40:00 【m0_67595943】
有时候,我们需要日期的计算,比如在当前日期的基础上移动X天是什么时候,或者在指定的某一天的基础上移动X天是什么时候,等等。。
public static void main(String[] args) {
DateDemo.nowDateMove(3);
DateDemo.unKnownDateMove(2016,12,12,6);
}
public static void nowDateMove(int num) {
//获取当前日期
LocalDate ld = LocalDate.now();
//要移动的天数num,可以是整数或者负数
LocalDate ll = ld.plusDays(num);
System.out.println("今天是: " + ld + "------再过" + num + "天是:" + ll);
}
public static void unKnownDateMove(int year, int month, int day, int num) {
//指定日期
LocalDate ld = LocalDate.of(year, month, day);
//要移动的天数num,可以是整数或者负数
LocalDate ll = ld.plusDays(num);
System.out.println("指定日期是: " + ld + "------再过" + num + "天是:" + ll);
}
输出结果
今天是: 2018-12-22------再过3天是:2018-12-25
指定日期是: 2016-12-12------再过6天是:2016-12-18
之前我也碰到过类似的问题,但是的解决方案是,感觉还是LocalDate简单
1、在当前基础上后退
public class DateMoveUtil {
/**
* 日期计算 在当前日期的基础上,推后num天
* @param num
* @return
*/
public String dateFun(int num) {
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
//推后一定天数
calendar.add(Calendar.DATE,num);
//返回一个Date对象,表示此Calendar的时间值
date = calendar.getTime();
String dateTime = format.format(date);
return dateTime;
}
}
2、在某一日期之后后退
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(“2018-10-10”);
Date date1 = new Date(date.getTime() + 7 * 24 * 60 * 60 * 1000L);
String time = format.format(date1);
仅供参考,如果大家有好的方法,虚心请教。
(一) LocalDate与LocalDateTime初始化日期,对日期加减。
public static void main(String[] args){
//获取当前时间(年月日)
LocalDate localDate=LocalDate.now();
//格式化日期(DateTimeFormatter是线程安全的,用于localData的时间格式化)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date= LocalDate.parse(localDate.toString(), formatter); //2022-05-23
//增加一年
LocalDate nextYear = date.plusYears(1); //2023-05-23
//减少一年
LocalDate lastYear = date.minusYears(1); //2021-05-23
//增加一个月
LocalDate nextMonths= date.plusMonths(1); //2021-06-23
//增加一天
LocalDate nextDays= date.plusDays(1); //2021-05-24
//构造指定的年月日
LocalDate specifiedDate = LocalDate.of(2022, 5, 23);
//年
int year = specifiedDate.getYear(); //2022
//月(这里用到了ChronoField类,有兴趣的可以去了解一下)
int month1 = specifiedDate.get(ChronoField.MONTH_OF_YEAR); //5
//日
int day = specifiedDate.getDayOfMonth(); //23
//创建LocalTime,只会获取几时几分几秒
LocalTime localTime = LocalTime.now();
//创建LocalDateTime,获取年月日时分秒,等于LocalDate+LocalTime
LocalDateTime localDateTime = LocalDateTime.now();
}
(二)Duration 或 ChronoUnit 计算两个时间的间隔
Duration 类计算时间间隔
LocalDateTime time = LocalDateTime.parse("2022-06-28T08:41:00");
LocalDateTime time1 = LocalDateTime.parse("2022-06-28T08:42:00");
Duration duration = Duration.between(time, time1);
// 相差天数
long datys = duration.toDays();
// 相差小时
long hours = duration.toHours();
// 相差分钟
long minutes = duration.toMinutes();
// 相差秒数
long seconds = duration.getSeconds();
// 相差毫秒
long millis = duration.toMillis();
// 相差纳秒
long nanos = duration.toNanos();
ChronoUnit 类计算时间间隔
LocalDateTime time = LocalDateTime.parse("2022-06-28T08:41:00");
LocalDateTime time1 = LocalDateTime.parse("2022-06-28T08:42:00");
//相差月
long cuMonths = ChronoUnit.MONTHS.between(time, time1);
//相差天数
long cuDatys = ChronoUnit.DAYS.between(time, time1);
//相差小时
long cuHours = ChronoUnit.HOURS.between(time, time1);
//相差分钟
long cuMinutes = ChronoUnit.MINUTES.between(time, time1);
//相差秒
long cuSeconds = ChronoUnit.SECONDS.between(time, time1);
public static void main(String[] args) {
DateDemo.nowDateMove(3);
DateDemo.unKnownDateMove(2016,12,12,6);
}
public static void nowDateMove(int num) {
//获取当前日期
LocalDate ld = LocalDate.now();
//要移动的天数num,可以是整数或者负数
LocalDate ll = ld.plusDays(num);
System.out.println("今天是: " + ld + "------再过" + num + "天是:" + ll);
}
public static void unKnownDateMove(int year, int month, int day, int num) {
//指定日期
LocalDate ld = LocalDate.of(year, month, day);
//要移动的天数num,可以是整数或者负数
LocalDate ll = ld.plusDays(num);
System.out.println("指定日期是: " + ld + "------再过" + num + "天是:" + ll);
}
今天是: 2018-12-22------再过3天是:2018-12-25
指定日期是: 2016-12-12------再过6天是:2016-12-18
1、在当前基础上后退
public class DateMoveUtil {
/**
* 日期计算 在当前日期的基础上,推后num天
* @param num
* @return
*/
public String dateFun(int num) {
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
//推后一定天数
calendar.add(Calendar.DATE,num);
//返回一个Date对象,表示此Calendar的时间值
date = calendar.getTime();
String dateTime = format.format(date);
return dateTime;
}
}
2、在某一日期之后后退
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(“2018-10-10”);
Date date1 = new Date(date.getTime() + 7 * 24 * 60 * 60 * 1000L);
String time = format.format(date1);
边栏推荐
- Spss-系统聚类手算实操
- The upgrade and transformation plan of the fortress machine for medium and large commercial banks!Must see!
- [Linear Algebra 02] 2 interpretations of AX=b and 5 perspectives of matrix multiplication
- 27. Dimensionality reduction
- 如何根据“前序遍历,中序遍历”,“中序遍历,后序遍历”构建按二叉树
- 七夕,当爱神丘比特遇上牛郎和织女
- [21 days learning challenge - kernel notes] (2), based in the device tree
- In action: 10 ways to implement delayed tasks, with code!
- Win11如何开启Telnet客户端?
- 硬件开发定制全流程解析
猜你喜欢

SPSS-System Clustering Hand Calculation Practice

DSPE-PEG-Aldehyde,DSPE-PEG-CHO,磷脂-聚乙二醇-醛基一种疏水18碳磷脂

Spss-一元回归实操

AXI interface application of Zynq Fpga image processing - the use of axi_lite interface

LayaBox---TypeScript---Problems encountered at first contact

C语言知识大全(一)——C语言概述,数据类型

27.降维

Unknown point cloud structure file conversion requirements

LeetCode143:重排链表

buu web
随机推荐
OC-拷贝
Dotnet using WMI software acquisition system installation
看看XDOC如何做Word文档预览
立即升级!WPS Office 出现 0day 高危安全漏洞:可完全接管系统,官方推出紧急更新
STM32MP157A驱动开发 | 01- 板载LED作为系统心跳指示灯
Named routes, the role of name in components
ES6高级-async的用法
Exploration and Practice of Database Governance
UDP communication
[Linear Algebra 02] 2 interpretations of AX=b and 5 perspectives of matrix multiplication
AI/ML无线通信
ROS播包可视化
SPSS-System Clustering Hand Calculation Practice
OD-Model【6】:YOLOv2
【CC3200AI 实验教程 1】疯壳·AI语音人脸识别(会议记录仪/人脸打卡机)-开发环境搭建
【PCBA program design】Grip dynamometer program
MySQL查询为啥慢了?
[Linear Algebra 03] Elimination method display and 4 solutions of AX=b
数电快速入门(五)(编码器的介绍以及通用编码器74LS148和74LS147的介绍)
The upgrade and transformation plan of the fortress machine for medium and large commercial banks!Must see!