gpt4 book ai didi

java - 从年、月、日和时间创建日期对象

转载 作者:行者123 更新时间:2023-11-29 06:56:37 27 4
gpt4 key购买 nike

是否可以根据年、月、日和时间创建一个java.util.Date对象?

我正在使用这段代码:

private Date convertToDate(LocalTime time)
{
@SuppressWarnings("deprecation")
Instant instant = time.atDate(LocalDate.of(date.getYear(),
date.getMonth(), date.getDay())).atZone(ZoneId.systemDefault()).toInstant();
return Date.from(instant);
}

我面临的问题是这段代码总是给我的时间增加 6 分 32 秒。
因此,如果我的 LocalTime 时间 是例如08:00创建日期是 Mon Sep 03 08:06:32 CET 115

最佳答案

您正在使用 Date#getYear错误地:

Returns a value that is the result of subtracting 1900 from the year that contains or begins with the instant in time represented by this Date object, as interpreted in the local time zone.

getYear() 的偏移量为 1900,您必须在使用 LocalDate.of(year, month, day) 时添加它。这就是为什么你计算出的 Instant 的年份是 115。

Instant instant = time.atDate(LocalDate.of(date.getYear() + 1900,
date.getMonth(), date.getDay())).atZone(ZoneId.systemDefault()).toInstant();

关于java - 从年、月、日和时间创建日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33100571/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com