3

我正在尝试使用 SimpleDateFormat 类从该字符串中解析 DateTime :

2012 年 7 月 5 日上午 11:38:02,442 UTC

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

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

4 回答 4

6

您提供的代码对我来说很好用。也许问题是您的语言环境?尝试在创建时指定它SimpleDateFormat

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

这样,它将尝试查找美国月份和 am/pm 指示符名称。

于 2012-07-16T15:52:17.197 回答
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要设置什么吗?

于 2012-07-16T15:53:00.723 回答
0

试试这个...

System.out.println(new SimpleDateFormat("dd-MMM-yyyy HH:mm:ss,SSS z a",
                                              Locale.US).format(new Date()));
于 2012-07-16T15:54:16.523 回答
0

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

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
于 2012-07-16T15:55:12.643 回答