JodaTime IllegalArgumentException:格式无效

时间:2015-11-05 17:32:18

标签: java exception format jodatime

此代码抛出“格式无效”或“格式错误”异常:

代码:

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的正确模式)

2 个答案:

答案 0 :(得分:5)

AM/PM标记的文本可能与默认语言环境的文本不同。你可以做到

Date date = 
  DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).toDate();

答案 1 :(得分:3)

取决于区域设置,您可以指定区域设置时区

这些应该适合你:

storeA

DateTime.parse(strDate, DateTimeFormat.forPattern(format).withLocale(Locale.US)).withZone(DateTimeZone.UTC).toDate();