1

我正在尝试将日期对象(CST 区域)转换为 GMT 字符串,然后再转换回日期对象(CST)。

我使用了以下代码并且它正在工作,但想知道它如何使用 GMT 日期格式化程序将 GMT 字符串转换为 CST 日期。
我的问题是如何在不使用带有 CST 格式化程序的格式化程序的情况下恢复 CST 时间?

Date inputdate = new Date();// My local time CST

System.out.println(inptdate);

SimpleDateFormat sdfgmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.000'Z'");
sdfgmt.setTimeZone(TimeZone.getTimeZone("GMT"));

String gmtString = sdfgmt.format(inputdate );

System.out.println(gmtString);

Date outputDate  = sdfgmt.parse(gmtString);

System.out.println(outputDate);

输出

Fri Jan 18 22:52:47 CST 2013  
   2013-01-19T04:52:47.000Z  
   Fri Jan 18 22:52:47 CST 2013
4

1 回答 1

0

Java 日期没有时区的概念。Java 日期只是一个存储的 long。通过打印日期,您将其转换为计算机的时区。如果您对存储时区感兴趣,请尝试 Joda 的 DateTime 类。

于 2013-01-19T05:15:53.163 回答