【问题标题】:Unparseable date exception while converting UTC time in java在java中转换UTC时间时出现无法解析的日期异常
【发布时间】:2012-08-30 10:00:02
【问题描述】:

如果这是我正在做的一个非常愚蠢的错误,我很抱歉,但我似乎看不到它。我在尝试使用 SimpleDateFormat 解析 2012-08-28T21:52:57.020Z 时遇到不可解析的日期异常,格式字符串为“yyyy-MM-dd'T'HH:mm:ss.SSSZ”。谁能指出问题所在。

【问题讨论】:

    标签: java simpledateformat


    【解决方案1】:

    我不认为 SimpleDataFormat 将解析字符串中的“Z”解析为时区。 :( 它只在格式中以Z 作为查找时区的位置。

    尝试"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" 格式或尝试更好地处理时区的JodaTime。

    【讨论】:

    • 它现在可以工作了,我太急于深入。也许以后。非常感谢:)
    • @Vikdor 我试图澄清这种混淆。格式中有一个Z 是可以的,而解析的字符串中有一个Z 不是。解决方法是假设解析的字符串中有Z
    【解决方案2】:

    最后的“Z”对应时区。您应该将输入中的“Z”替换为时区 ID,例如 IST/EST 等,

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
    String date = "2012-08-28T21:52:57.020IST";
    System.out.println(df.parse(date));
    
    output: Tue Aug 28 21:52:57 IST 2012
    

    【讨论】:

    • 在这种情况下,Z 是时区。与 GMTGMT+0+0000 相同,其中 SimpleDateFormat 仅解析 GMT
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2020-09-18
    相关资源
    最近更新 更多