2012-04-03 59 views
0

我有约会这样的格式:我应该在SimpleDateFormat中使用哪种模板?

 2010-02-04T00:00:00 

我用这个代码来分析它:

 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-ddTHH:mm:ss"); 
     Date parsed = dateFormat.parse("2010-02-04T00:00:00"); 

它返回例外。问题在于“T”字母。如果服务器以这种格式返回它,我该如何解析这个日期?

回答

1

只需使用此字符串代替:"2010-02-04'T'00:00:00".' - 字符转义字母,以便它们不会被解析为日期的一部分。

或作为SimpleDateFormat文档解释了它:

文本可以被引用使用单引号('),以避免解释。 “''”代表单引号。所有其他字符不解释为 ;它们只是在 格式化期间简单地复制到输出字符串中,或​​者在解析期间与输入字符串匹配。

1

试试这个:

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

编辑lowecase m住宿每分钟在小时。看到doc

1
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss"); 
SimpleDateFormat sdf2 = new SimpleDateFormat("EEE MMM dd'T' hh:mm:ss z yyyy"); 

Date myDate = sdf.parse(strDate); 
sdf2.format(myDate); 

System.out.println(myDate); 

这将工作...