2014-03-12 16 views
1

我有時間上設備11時34誤差變換解析TIME DD.MM.YYYY」,'12:00

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy', 'hh:mm"); 
Date date_current = new Date(); 
Date date_start = null; 
date_start = sdf.parse("12.03.2014, 12:00");// I PARSE THIS DATE!!! 

結果是:

DATE_START
星期三年03月12 00:00:00ВосточноевропейскоеВРЕМЯ2014

而應該是:
Wed Mar 12 12:00:00Восточноевропейскоевремя2014

如何解決?

+0

你能解決嗎? –

回答

8

要獲得24h格式使用HH而不是hh。在12小時格式中,小時數可能會增加0 - 11,這會使12溢出至0

使用

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy', 'HH:mm"); 
+0

http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html說明了一切:) OP:閱讀文檔...他們很有用。 – XSen

+0

感謝您的好建議 – NickUnuchek

1

首先,來看看關於Simpledatrformat的模式。它清楚地顯示H用於(0-23)。

Reference for Date Format Pattern Syntax

所以你應該改變你的代碼如下圖所示。

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy', 'HH:mm"); 
Date date_current = new Date(); 
Date date_start = null; 
date_start = sdf.parse("12.03.2014, 12:00"); 
System.out.println("now time is.." + date_start); 

OR

使用此:

Date date = new Date(); 
date.setHours(date.getHours() + 8); 
System.out.println(date); 
SimpleDateFormat simpDate; 
simpDate = new SimpleDateFormat("kk:mm:ss"); 
System.out.println(simpDate.format(date)); 

謝謝..用上面的代碼正確解析!

1

使用24小時日期格式 SimpleDateFormat sdf = new SimpleDateFormat(「dd.MM.yyyy','HH:mm」);

相關問題