我想解析这种格式的日期" Tue Dec 22 19:16:57 UTC"在java中 这是一个有效的UTC DateTime吗?以及如何解析它?我试过了:
DateFormat format = new SimpleDateFormat("ddd MMM dd HH:mm:ss yyyy UTC");
答案 0 :(得分:1)
咨询SimpleDateFormat
documentation,我们看到:
工作日名称的格式说明符为E
,而不是d
时区指示符的格式说明符(UTC是排序的时区指示符)对于RFC-822时区为Z
(对于ISO-8601时区为X
,或{{1 “一般”时区)
所以字符串是z
。 Live Example on IDEone
但是,文档并未说明"EEE MMM dd HH:mm:ss yyyy Z"
会被识别为时区(UTC
或Z
或X
),因此您可能希望预处理字符串以将z
更改为RFC-822支持的其中一个说明符:
UTC
如果您的语言环境默认不是英语,您还需要告诉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
希望这会有所帮助。 : - )