日期格式

杜什金

我需要解析以下日期格式:

Aug  6, 2013 18:34:16.990423000

所以我尝试了以下方法:

Date startTime;
SimpleDateFormat df = new SimpleDateFormat("MMM dd, yyyy kk:mm:ss.S", Locale.ENGLISH);
startTime = df.parse("Aug  6, 2013 18:34:16.990423000");

但是,这mydate.toString给了我另一个约会!

它给了我"Sun Aug 11 11:27:43 IDT 2013"

它与时区有关吗?

顺便说一句,当我表演

ts = returnTime.getTime() - startTime.getTime();

它似乎返回正确的答案。但是我不确定是否总是如此。

半位

问题在于S表示毫秒。它将毫秒数添加到日期,但是您有990423000毫秒。您可能希望忽略.S格式,或首先截断输入,如以下示例所示:

Date startTime;
String dateString = "Aug  6, 2013 18:34:16.990423000";
SimpleDateFormat df = new SimpleDateFormat("MMM dd, yyyy kk:mm:ss.SSS", Locale.ENGLISH);
startTime = df.parse(dateString.replaceFirst("\\.(\\d{3})\\d*$", ".$1"));
System.out.println(new SimpleDateFormat("MMM dd, yyyy kk:mm:ss.SSS").format(startTime));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章