我在我的应用程序中编写了一个实用程序,它接受一个时区并返回一个日期(java.util.Date),如下所示 -
// Inside MyDateHelper.java
public static java.util.Date getTimeForTimeZone(String timeZoneId)
{
final Date currentDate = Calendar.getInstance(TimeZone.getTimeZone(timeZoneId)).getTime();
return currentDate;
}
我在互联网上进行了研究,发现 Date 中没有任何时区信息。相反,它是一个从 1970 年开始的 long 值的包装器。所以,我的问题是,我是否必须获取当前发生的事务的当前日期时间瞬间,以存储在日期字段(java.util.Date 类型)中),这个实用程序有什么用吗?
就所有实际目的而言,这两行代码是否实现了相同的目标?
transactionEntry.setTime(MyDateHelper.getTimeForTimeZone("UTC+7:00"));
或者
transactionEntry.setTime(new Date());
我还检查了新的 Java 8 Time API,但就我的目的而言,我认为这样做也是一种矫枉过正,仅此而已new Date()-
Date date4 = new Date();
LocalDateTime localDate = date4.toInstant().atZone(ZoneId.of("UTC+07:00")).toLocalDateTime();
final ZonedDateTime dateWithZone = localDate.atZone(ZoneId.of("UTC+07:00"));
Date dateOutput = Date.from(dateWithZone.toInstant());
transactionEntry.setTime(dateOutput);
整个目的是用时区捕获事务发生的时间,但我只能将时间存储为 java.util.Date。无论交易发生在哪个时区,Date 都能够正确捕捉时间,对吗?有人可以确认这种理解是正确的吗?
慕工程0101907
郎朗坤
慕勒3428872
相关分类