【问题标题】:Timezone Date parsing时区日期解析
【发布时间】:2012-05-17 14:03:31
【问题描述】:

我正在用 SimpleDateFormat 解析一个 UTC 日期字符串,它被解析为上一个日期。

DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");

这个字符串“Fri, 06 Apr 2012 04:00:00 GMT”被解析为 2012 年 4 月 5 日。为什么?谢谢。

【问题讨论】:

  • 会不会也需要时差?世界上一个地方的 4 月 6 日,可能是世界另一端的 4 月 5 日。
  • 问题已解决..令人难以置信..JDK 1.5.0_22 产生的日期不正确。切换到 JDK 1.6 问题消失了。

标签: java date utc


【解决方案1】:

下面是日期转换的例子...

对您的程序进行相应的更改,并让我知道您得到了什么输出。

    String dateStr = "Thu Jan 19 2012 01:00 PM";
    DateFormat readFormat = new SimpleDateFormat( "EEE MMM dd yyyy hh:mm aaa");

    DateFormat writeFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
    Date date = null;
    try {
       date = readFormat.parse( dateStr );
    } catch ( ParseException e ) {
        e.printStackTrace();
    }

    String formattedDate = "";
    if( date != null ) {
    formattedDate = writeFormat.format( date );
    }

    System.out.println(formattedDate);

输出为2012-01-19 13:00:00

按照您期望的输出进行更改。

【讨论】:

    【解决方案2】:

    注意 JDK 1.5.0_22 (linux)。产生不正确的日期。切换到JDK 1.6 问题就解决了。

    【讨论】:

      猜你喜欢
      • 2020-07-15
      • 1970-01-01
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多