提问人:Abadellatif Abazine 提问时间:4/27/2023 最后编辑:AnonymousAbadellatif Abazine 更新时间:4/28/2023 访问量:112
将 LocalDate 转换为 java.util.Date [duplicate]
Converting LocalDate to java.util.Date [duplicate]
问:
我正在尝试将 转换为 ,但在此过程中我损失了一些时间。java.time.LocalDate
java.util.Date
下面是显示问题的代码:
public static void main(String[] args) {
var localDate = LocalDate.of(775, 7, 20);
var date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
System.out.println("date = " + date);
}
正如你所看到的,我有一个在 775 年、第 7 个月和第 20 天。LocalDate
但是当我把它转换为它时,它变成了 775 年、第 7 个月和第 16 天。Date
所以少了 4 天。
有没有办法在几天内没有损失地转换?
PS:我知道我不应该将旧的Date API与新的Date API混合在一起,但是我受到使用闭源ERP的限制java.util.Date
答:
0赞
Gopinath Radhakrishnan
4/27/2023
#1
不确定这种差异的根本原因,但以下解决方法可能对您的上下文有所帮助:
var localDate = LocalDate.of(775, 7, 20);
var instant = Calendar.getInstance();
instant.set(localDate.getYear(), localDate.getMonthValue() - 1 , localDate.getDayOfMonth());
var date = instant.getTime();
System.out.println("date = " + date);
评论
0赞
Abadellatif Abazine
4/27/2023
谢谢解决它,也不确定根本原因
2赞
Anonymous
4/27/2023
根本原因在于我在问题下的评论:并使用两种不同的日历系统,分别是公历和儒略历。LocalDate
Date
评论
Date.toString()
Date
String
LocalDate
LocalDate
LocalDate
LocalDate