我需要解析以下日期格式:
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] 删除。
我来说两句