【问题标题】:Unable to parse String using Java Date parser无法使用 Java 日期解析器解析字符串
【发布时间】:2015-09-17 11:39:18
【问题描述】:

我正在使用此解析日期时间字符串:http://developer.android.com/reference/java/text/SimpleDateFormat.html,但不知何故我在解析时遇到运行时错误:https://ideone.com/gpFqwp

谁能指出我的错误?

static String date = "2015-09-17T08:22:49Z";
public static DateFormat inputDatetimeFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
public static DateFormat displayDateFormat = DateFormat.getDateTimeInstance();

public static void main (String[] args) throws java.lang.Exception
{
    System.out.println(displayDateFormat.format(inputDatetimeFormatter.parse(date)));
}

【问题讨论】:

标签: java datetime date-format


【解决方案1】:
DateFormat inputDatetimeFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX");

查看SimpleDateFormat in Java 7的javadoc

或使用

 DateFormat inputDatetimeFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

查看SimpleDateFormat in Java 6的javadoc

这是sample

【讨论】:

    【解决方案2】:

    inputDatetimeFormatter 更改为new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");。然后就可以正常运行了。

    编辑:Zdate 字符串末尾的目的是什么? 它只是一封你一直想在那里的信吗?

    然后你必须将inputDatetimeFormatter 更改为上述内容。 如果Z 的目的是针对时区,那么您的date 字符串是错误的(不应包含Z 而是时区,例如-0800)。

    然后它会给出:

    static String date = "2015-09-17T08:22:49-0800"; // Replace -0800 by wanted time zone
    public static DateFormat inputDatetimeFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); // Now you can use Z (instead of 'Z') to indicate that the time zone is following
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      相关资源
      最近更新 更多