无法使用 Java 日期解析器解析字符串

Unable to parse String using Java Date parser

我正在使用这个解析日期时间字符串:http://developer.android.com/reference/java/text/SimpleDateFormat.html but somehow i was getting runtime error on parsing: 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)));
}

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

编辑:date 字符串末尾的 Z 的用途是什么? 只是一封信,你总是想在那里吗?

那你就得把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
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