【发布时间】:2016-04-01 18:50:07
【问题描述】:
我想获取 UTC 时区的时间。于是我写了代码:
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.util.Date;
public class RegularSandbox {
public static void main(String[] args) {
ZonedDateTime utc = ZonedDateTime.now(ZoneOffset.UTC);
System.out.println("DATETIME = " + Date.from(utc.toInstant()));
}
}
问题是输出显示了 PST(我的本地时区)的时间。我需要它以 UTC 格式输出时间,以便将其存储在我的数据库中。
【问题讨论】:
-
这是格式化程序。您需要自己格式化,不要让
toString方法为您完成! -
@BoristheSpider 感谢您的回复。抱歉,我不知道该怎么做?
-
从the top 开始,一路向下...
-
它是
Date#toString()方法,它使用系统时区(操作系统正在使用),当它显示时,而不是Date本身。默认情况下,它始终采用UTC。所以,如果你将一个Date实例持久化到底层数据库,它应该根据UTC。这些答案仅说明如何在 Java 控制台上显示日期时间,例如,没有考虑到您需要将Date实例持久保存到数据库中(目前不支持 Java 8DataTime)。