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