【问题标题】:Converting GMT date string to local Date object将 GMT 日期字符串转换为本地 Date 对象
【发布时间】:2013-01-02 21:25:05
【问题描述】:

我正在尝试将日期对象(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

【问题讨论】:

    标签: java date calendar timezone simpledateformat


    【解决方案1】:

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

    【讨论】:

    • 哇.. 你让我开心了 Thanx Zylth,Joda 时间使用 DateTimeZone 类进行时区更改令人印象深刻。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2017-11-11
    • 2017-01-07
    • 2020-05-21
    相关资源
    最近更新 更多