JodaTime IllegalArgumentException:格式无效
JodaTime IllegalArgumentException: Invalid format
此代码抛出 "invalid format" 或 "malformed" 异常:
代码:
strDate = "21/10/2015 12:00:00 AM";
format = "dd/MM/yyyy hh:mm:ss a";
DateTime.parse(strDate, DateTimeFormat.forPattern(format)).toDate();
异常:
java.lang.IllegalArgumentException: Invalid format: "21/10/2015 12:00:00 AM"
is malformed at "AM"
怎么了?
我正在使用 joda-time:2.8.1
(我已经搜索过了,我认为这是该 strDate 的正确模式)
AM/PM
标记的文本可能与您的默认语言环境不同。你可以做
Date date =
DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).toDate();
取决于区域设置,您可以指定 locale 和 timezone :
这些应该适合你:
DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).withZone(DateTimeZone.UTC).toDate();
或
DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).toDate();
此代码抛出 "invalid format" 或 "malformed" 异常:
代码:
strDate = "21/10/2015 12:00:00 AM";
format = "dd/MM/yyyy hh:mm:ss a";
DateTime.parse(strDate, DateTimeFormat.forPattern(format)).toDate();
异常:
java.lang.IllegalArgumentException: Invalid format: "21/10/2015 12:00:00 AM"
is malformed at "AM"
怎么了?
我正在使用 joda-time:2.8.1
(我已经搜索过了,我认为这是该 strDate 的正确模式)
AM/PM
标记的文本可能与您的默认语言环境不同。你可以做
Date date =
DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).toDate();
取决于区域设置,您可以指定 locale 和 timezone :
这些应该适合你:
DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).withZone(DateTimeZone.UTC).toDate();
或
DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).toDate();