2011-09-07 194 views
1

如何解析Java中的以下日期从其字符串表示形式到java.util.Date?解析Java日期

2011-07-12T16:45:56

我试过如下:

private Date getDateTime(String aDateString) { 
    Date result = new java.util.Date(); 
    SimpleDateFormat sf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss"); 
    try 
    { 
     result = sf.parse(aDateString); 
    } 
    catch (Exception ex) 
    { 
     Log.e(this.getClass().getName(), "Unable to parse date: " + aDateString); 
    } 
    return result; 
} 
+0

可能重复[解析这种类型的日期格式在Java?](http://stackoverflow.com/questions/4013681/parse-this-type-of-date-format-in-java) –

回答

5

您没有使用正确的日期格式的模式。年/月/日分隔符显然是错误的,你需要一个文字'T'。试试这个:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 

根据记录,这是一个ISO 8601合并日期和时间格式。

+0

你在模式上有一个小错误 - 因为他的例子日期时间是在军事时间,所以它应该是'HH'而不是'hh'。不挑剔只是指出来。 :) – CoolBeans

+0

非常感谢修正 - 修正。这是[不是我第一次犯这个错误](http://stackoverflow.com/questions/1313280/inconsistent-date-parsing-using-simpledateformat),要么... –

+0

哈哈 - 这真是一个巧合:) – CoolBeans

3

您的日期格式模式不正确。它应该是yyyy-MM-dd'T'HH:mm:ss

为了解析像一个日期 “2011-07-12T16:45:56” 你需要使用: -

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
2

检查你喂养你的SimpleDateFormat对你在喂养字符串的模式。

见任何潜在的差异?我看到3.