无法使用Java Date解析器解析String

时间:2015-09-17 11:39:19

标签: java datetime date-format

我正在使用这个解析日期时间字符串: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)));
}

2 个答案:

答案 0 :(得分:0)

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

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

然后您必须将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

答案 1 :(得分:0)

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