将字符串转换为日期 - 获取错误

时间:2013-11-08 17:23:57

标签: java date datetime

将字符串“ 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构造函数的自定义日期格式列表吗?找不到合并的列表/链接。

由于

2 个答案:

答案 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();