如何以这种格式解析DateTime? “Tue Dec 22 19:16:57 UTC”

时间:2015-12-28 08:58:29

标签: java datetime date-format simpledateformat

我想解析这种格式的日期" Tue Dec 22 19:16:57 UTC"在java中 这是一个有效的UTC DateTime吗?以及如何解析它?我试过了:

 DateFormat format = new SimpleDateFormat("ddd MMM dd HH:mm:ss yyyy UTC");

3 个答案:

答案 0 :(得分:1)

咨询SimpleDateFormat documentation,我们看到:

  • 工作日名称的格式说明符为E,而不是d

  • 时区指示符的格式说明符(UTC是排序的时区指示符)对于RFC-822时区为Z(对于ISO-8601时区为X,或{{1 “一般”时区)

所以字符串是zLive Example on IDEone

但是,文档并未说明"EEE MMM dd HH:mm:ss yyyy Z"会被识别为时区(UTCZX),因此您可能希望预处理字符串以将z更改为RFC-822支持的其中一个说明符:

UTC

Live Example

如果您的语言环境默认不是英语,您还需要告诉DateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z"); String s = "Tue Dec 22 19:16:57 2015 UTC"; s = s.replace("UTC", "GMT"); Date d = format.parse(s); 使用英语(因为这些是英文日期和月份名称):

SimpleDateFormat

答案 1 :(得分:0)

有关其他信息,请务必参阅javadoc

 DateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy Z");

答案 2 :(得分:-1)

不确定你是如何编写代码的,但是在军事时间显示它的一种方法是,你可以这样做:

返回String.format(“%02d:%02d:%02d”,小时,分钟,秒); //第一个参数是关键。第二个参数是每个“%02d”中显示的内容 将显示为00:00:00

希望这会有所帮助。 : - )