GMT中的Java时间

Mik*_*uto 5 java grails date gmt

我有一个Grails应用程序,代码如下:

Date now = Calendar.getInstance().getTime() //Also tried new Date()
println "now: " + now
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我明白了now: Thu Aug 18 12:47:09 CDT 2011.我需要将日期设置为GMT,而不是当地时间,因为我需要将GMT时间存储在数据库中.我可以使用simpleDateFormat对象在GMT中打印出时间,但我需要将其实际存储为GMT.

问题:如何使用GMT将Date对象转换为Date对象?

jpr*_*ham 5

这突出了Java为什么会吮吸的原因.之前的帖子都很接近,但我们需要非常小心地获取GMT中的当前时间,并将当前时间记录在CDT并称之为 GMT.

TimeZone reference = TimeZone.getTimeZone("GMT");
Calendar myCal = Calendar.getInstance(reference);
Run Code Online (Sandbox Code Playgroud)

这是格林尼治标准时间的当前时间,具有GMT的时区背景.

要转换为保持区域完整的Date对象,您需要调用:

TimeZone.setDefault(reference);
Run Code Online (Sandbox Code Playgroud)

此设置将持续与您当前的JVM一样长.现在调用get Time应该产生所需的结果.

myCal.getTime();
Run Code Online (Sandbox Code Playgroud)