使用SimpleDateFormat时出错

时间:2012-07-16 15:49:08

标签: java parsing simpledateformat

我试图使用SimpleDateFormat类来解析此字符串中的DateTime:

05-Jul-2012 11:38:02,442 UTC AM

我尝试了以下格式字符串:

SimpleDateFormat dateformatYYYYMMDD = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss,SSS z a");

Date temp = dateformatYYYYMMDD.parse(time);

但它会产生错误:

错误:无法解析的日期:""

如果我使用zZ,我会得到:错误:无法解析的日期:" 05-Jul-2012 11:38:02,442 UTC AM"

有关如何解决这个问题的任何提示?

4 个答案:

答案 0 :(得分:6)

您提供的代码对我来说很好。也许问题出在你的地方?在创建SimpleDateFormat时尝试指定它:

SimpleDateFormat format =new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss,SSS z a",
                                              Locale.US);

这样它会尝试找到美国月份和上午/下午的指定名称。

答案 1 :(得分:2)

当我尝试跑步时,这对我很好:

String time = "05-Jul-2012 11:38:02,442 UTC AM";
SimpleDateFormat dateformatYYYYMMDD = new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss,SSS z a");
Date temp = dateformatYYYYMMDD.parse(time);

您确定time设置为什么?

答案 2 :(得分:0)

试试这个......

System.out.println(new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss,SSS z a",
                                              Locale.US).format(new Date()));

答案 3 :(得分:0)

我无法重现您的错误。你确定你在使用:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;