2013-07-17 56 views
0

在java中我試圖時間戳轉換爲日期爲指定的格式,我可以做到這樣才從時間戳日期格式「週三7月17日5時33分07秒UTC 2013」​​

DateFormat format = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy"); 
    Date date = format.parse("022310141505"); 
    System.out.println(date); 

如何添加'UTC'日期格式爲"Wed Jul 17 05:33:07 UTC 2013"

它拋出錯誤

java.text.ParseException: Unparseable date: "022310141505" 
    at java.text.DateFormat.parse(DateFormat.java:337) 
+3

你傳遞'022310141505'的日期格式期待的格式的字符串'EEE MMM d HH:mm:ss yyyy'。這怎麼可能工作?請重新提出您的問題,告訴我們您的輸入以及您想要的輸出。 –

+0

無論如何,022310141505是什麼?似乎太短而不是毫秒,並且沒有任何明顯的日期或時間格式。 –

+0

@MarkM這是時間戳 – jackyesind

回答

1

試試這個,

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy "); 
    sdf.setTimeZone(TimeZone.getTimeZone("UTC")); 
    Date date = new Date(); 
    System.out.println(sdf.format(date)); 

在另外嘗試一些事情如下

DateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy "); 
    sdf.setTimeZone(TimeZone.getTimeZone("UTC")); 
    DateFormat format = new SimpleDateFormat("MMddyyHHmmss"); 
    Date date = format.parse("022310141505"); 
    System.out.println(sdf.format(date)); 
+0

它正在工作,但我需要將時間戳轉換爲日期 – jackyesind

1

目前尚不清楚,但在你的代碼,你想「解析」的日期,這意味着你正試圖從一個字符串表示回去Date對象。我想你想要做的是「格式化」日期,即從Date對象到字符串表示。

首先你要你的時間戳轉換爲日期

Date d = new Date(22310141505) 
DateFormat formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy"); 
System.out.println(formatter.format(d)); 

你正在試圖解析日期的方式註釋。你實際上是在試圖解析一個普通的字符串(它看起來像一個時間戳),但它完全不符合你構建DateFormat的模式。

0

如果上面的數字是時間戳記,只需將它首先變成日期即可。

long time = 022310141505L; 
Timestamp ts = new Timestamp(time); 
Date date = ts.getTime(); 
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy"); 
System.out.println(sdf.format(date)); 
+0

'日期日期= ts.getTime();'返回很長,但它是日期 – jackyesind

+0

SimpleDateFormat格式化它。現在我想到了,'022310141505'符合'MMddyyHHmmss'格式。你確定不是這個嗎? –

+0

是標記。當我嘗試'長時間戳= 1374044812 * 1000; // msec java.util.Date d = new java.util.Date(timestamp); System.out.println(d);'它顯示'Sun Dec 28 05:44:37 IST 1969',但時間戳是今天的日期 – jackyesind

相關問題