java8 joda_Joda Time和Java8时差
我正在寻找一个计算两个日期之间的月份的解决方案。我认为joda或java8时间可以做到。但是当我比较它们时,我发现了一些非常奇怪的东西。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import org.joda.time.Months;
public class DateMain {
public static void main(String[] args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date d1 = simpleDateFormat.parse("2017-01-28 00:00:00.000");
Date d2 = simpleDateFormat.parse("2017-02-28 00:00:00.000");
System.out.println("Test Cast 1");
System.out.println("joda time api result: " + monthsBetweenJoda(d1, d2) + " month");
System.out.println("java8 time api result: " + monthsBetweenJava8(d1, d2) + " month");
Date dd1 = simpleDateFormat.parse("2017-01-29 00:00:00.000");
Date dd2 = simpleDateFormat.parse("2017-02-28 00:00:00.000");
System.out.println("Test Cast 2");
System.out.println("joda time api result: " + monthsBetweenJoda(dd1, dd2) + " month");
System.out.println("java8 time api result: " + monthsBetweenJava8(dd1, dd2) + " month");
}
public static int monthsBetweenJoda(Date fromDate, Date toDate) {
if (fromDate == null || toDate == null) {
throw new IllegalArgumentException();
}
org.joda.time.LocalDateTime fromLocalDateTime = org.joda.time.LocalDateTime
.fromDateFields(fromDate);
org.joda.time.LocalDateTime toLocalDateTime = org.joda.time.LocalDateTime
.fromDateFields(toDate);
Months months = Months.monthsBetween(fromLocalDateTime, toLocalDateTime);
return months.getMonths();
}
public static long monthsBetweenJava8(Date fromDate, Date toDate) {
if (fromDate == null || toDate == null) {
throw new IllegalArgumentException();
}
LocalDateTime ldt1 = fromDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
LocalDateTime ldt2 = toDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
return ChronoUnit.MONTHS.between(ldt1, ldt2);
}
}
输出如下:
Test Cast 1
joda time api result: 1 month
java8 time api result: 1 month
Test Cast 2
joda time api result: 1 month
java8 time api result: 0 month
我对测试用例2感到非常困惑,哪一个合理?
对不起,这是我的第一个问题。已完成的代码已附加。
java8 joda_Joda Time和Java8时差相关推荐
- java8 joda_Joda Time项目和java8时间api
Joda Time出现的背景 在java1.0中,对日期和时间的支持只能依赖java.util.Date类.正如类名所表达的,这个类无法表示日期,只能以毫秒的精度表示时间.更糟糕的是它的易用性,由于某 ...
- 【爱上Java8】BigInteger在Java8中的改进
BigInteger在Java8里增加了一组方法: 1 2 3 public byte byteValueExact() public int intValueExact() public long ...
- java8 stringbuilder_有了Java8的“+”真的可以不要StringBuilder了吗
最近在头条上看到一篇帖子,说Java8开始,字符串拼接时,"+"会被编译成StringBuilder,所以,字符串的连接操作不用再考虑效率问题了,事实真的是这样吗?要搞明白,还是要 ...
- java8与hibernate_Hibernate 使用java8 LocalDateTime 注意事项
大家都知道,以前我们时间都用java.util.Date类型,但是现在都已经过时了, Java8里面新出来了一些API,LocalDate.LocalTime.LocalDateTime 非常好用 实 ...
- java8 optional使用_[Java8]如何正确使用Optional
Optional是Java8提供的为了解决null安全问题的一个API.善用Optional可以使我们代码中很多繁琐.丑陋的设计变得十分优雅.这篇文章是建立在你对Optional的用法有一定了解的基础 ...
- java8双层for循环,Java8处理List的双层循环问题
Java处理List的双层循环程序员经常遇到,一般都是当两个List某个值满足某条件时候,进行相应的处理: 1.list和map之间的相互转换 /** * 两个List对象当id相同的时候(注意是两个 ...
- java8 wordcount_Spark2.x与Java8下WordCount示例
spark深度学习指南+进阶实战2册 123.9元 包邮 (需用券) 去购买 > 不用 lambda 的基础版 import org.apache.spark.api.java.JavaPair ...
- java8 lambda 排序算法,Java8中排序算法比较器的三种写法(使用lambda表达式实现Comparator比较器)...
在涉及到数组, 集合等这些地方经常会需要用到排序算法, 在Java中的Collections类中有sort方法, 除了需要传入一个Comparator比较器, 或者需要排序的类实现了Comparabl ...
- java8如何遍历list,java8 List和Map遍历
java简化了foreach遍历.可以将list和mapzhuan转化为stream来操作 List items = new ArrayList<>(); items.add(" ...
最新文章
- Nginx与PHP(FastCGI)的安装、配置、优化
- java中使用什么来做错误处理_JAVA基础--如何通过异常处理错误
- 龙的建模竟然能建成这个样子:向大佬低头
- 注入安卓进程,并hook java世界的方法
- 《编译原理》实验预习报告——基于YACC的TINY语法分析器的构建
- 患者是否应该主动关注医疗知识
- 答应我不要问TCP三次握手四次挥手
- unity之中级工程师
- 3个观念 不再瞎学习!
- 实战 | 对抗外部威胁防护和勒索病毒,大厂怎么做?
- securecrt遇到一个致命的错误且必须关闭_淄博plc维修西门子plcs7-200致命错误7强制数据永久存储区错误...
- 修改mysql表前缀_使用phpMyAdmin批量修改Mysql数据表前缀的方法
- 微信读书vscode插件_众所周知,拥有了vscode就拥有了一切
- co2激光切割机控制系统上位机C#源码,stm32f407控制板源码,可用于雕刻机,切割机,写字机,点胶机
- 项目管理:RASCI模型
- RestSharp是什么?
- 软件升级 防火墙 飞塔_FortiGate软件版本升级
- stm32 SWD printf SWD调试输出
- 网盘中html怎么转成视频,怎么将百度网盘保存的MKV转换MP4格式
- scara机器人dh参数表_scara机器人技术参数