将字符串“ 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构造函数的自定义日期格式列表吗?找不到合并的列表/链接。
由于
答案 0 :(得分:1)
您应该使用SimpleDateFormat
类。
除此之外,Dateformats在http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
中有详细描述答案 1 :(得分: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();