博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java8的LocalDateTime真心好用(补充Period.between的大坑)
阅读量:6937 次
发布时间:2019-06-27

本文共 1889 字,大约阅读时间需要 6 分钟。

LocalDateTime、LocalDate是java8新增的时间工具类,最近使用后,真心觉得强大好用,推荐文章:https://www.liaoxuefeng.com/article/00141939241051502ada88137694b62bfe844cd79e12c32000

1、以下为简单的使用方法

public static void main(String[] args) {        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");        LocalDateTime startTime = LocalDateTime.now();        LocalDateTime endTime = startTime.plusDays(7);        System.out.println("开始时间:" + startTime.format(df) + ",结束时间:" + endTime.format(df));        LocalDateTime dateTest = LocalDateTime.parse("2018-02-30 12:12:12", df);        System.out.println("时间自动转化:" + dateTest.toString());        int daysNum = Period.between(startTime.toLocalDate(), endTime.toLocalDate()).getDays();        int monthNum = Period.between(startTime.toLocalDate(), endTime.toLocalDate()).getMonths();        System.out.println("相差天数:" + daysNum);        System.out.println("相差月数:" + monthNum);        System.out.println("当前时间向前推6天:" + LocalDateTime.now().minusDays(6));        System.out.println("当前时间向前推6小时:" + LocalDateTime.now().minusHours(6));    }

运行结果:

处理时间来,这个工具类真心省了不少代码!!好用

 

添加:根据日期获取当前为一年中的第几周

public static void main(String[] args) {        //一周从周日开始        WeekFields weekFields = WeekFields.of(DayOfWeek.SUNDAY, 7);        LocalDate today = LocalDate.now();        System.out.println(LocalDateUtil.getDateAsString(today) + "今天是今年第" + today.get(weekFields.weekOfYear()) + "周");    }

输出结果:

 

 

注意:在后期使用Period.between()方法来获取,相差天数、相差月数的时候,发现只能计算同月的天数、同年的月数,不能计算隔月的天数以及隔年的月数!!!相当的坑

更改使用方法:

1、查询两个LocalDate的相差天数

public static void main(String[] args) {        System.out.println(LocalDate.now().toEpochDay() - LocalDate.now().minusDays(5).toEpochDay());    }

2、查询两个LocalDate的相差月数

public static void main(String[] args) {        System.out.println(LocalDate.now().until(LocalDate.now().minusDays(5),ChronoUnit.MONTHS));    }

 

转载于:https://www.cnblogs.com/JoeyWong/p/9544456.html

你可能感兴趣的文章
UVA 610 Street Directions 双连通分量
查看>>
比尔盖茨的都市传说
查看>>
ss-R:// 链接的含义
查看>>
Caliburn.Micro 关闭父窗体打开子窗体
查看>>
powershell实现离线ip扫描
查看>>
Fragment使用findFragmentById返回null
查看>>
Logger日志级别说明及设置方法、说明
查看>>
SPOJ PGCD(莫比乌斯反演)
查看>>
第三篇 第八章泡沫灭火系统(二)
查看>>
MYSQL explain 详解
查看>>
移动web-bootstrap
查看>>
洛谷1108 低价购买
查看>>
LeetCode Next Permutation
查看>>
[转载] 杜拉拉升职记——12 话不投机
查看>>
Treap 实现名次树
查看>>
SSD 单发多框检测
查看>>
Layout 不可思议(二)—— 两侧定宽的三列布局
查看>>
Node.js学习笔记(八) --- Node.js的路由模块封装
查看>>
今天正式在博客园落家
查看>>
LeetCode 345. Reverse Vowels of a String
查看>>