簡體   English   中英

日期格式

[英]Date formatting

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

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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM