0

将字符串“ 2013 年 11 月 6 日 17:43:07 ”转换为 joda DateTime / Date 的最佳方法是什么?我的代码出现以下错误

代码:

   DateTime publishTime = new DateTime((String)dataMap.getValue("publishDate"));

错误:

java.lang.IllegalArgumentException: Invalid format: "06 Nov 2013 17:43:07" is malformed     
at " Nov 2013 17:43:07"
      at org.joda.time.format.DateTimeFormatter.parseMillis(DateTimeFormatter.java:747)

是否有我们可以传递给 SimpleDateFormat 构造函数的自定义日期格式列表?找不到综合列表/链接。

谢谢

4

2 回答 2

1

你应该使用SimpleDateFormat类。

除此之外,这里对日期格式进行了很好的描述http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

于 2013-11-08T17:25:30.417 回答
1

DateTimeFormat如果月份字段与默认字段不匹配,JodaTime将引发异常Locale。尝试使用ENGLISH语言环境

DateTimeFormatter fmt = 
   DateTimeFormat.forPattern("dd MMM yyyy HH:mm:ss").withLocale(Locale.ENGLISH);
DateTime publishTime = DateTime.parse("06 Nov 2013 17:43:07", fmt);
Date publishDate = publishTime.toDate();
于 2013-11-08T17:44:20.993 回答