2014-10-16 71 views
0

我從Web獲取日期/時間字符串,格式爲yyyy-mm-dd HH:MM:SS,格式爲UTC。將字符串轉換爲GMT時區日期。 JAVA

我要創建一個Date對象,並打印GMT格式的日期對象,但我不希望改變,例如,如果我讀的日期2014-10-22 09:00:00,那麼它應顯示爲2014-10-22 09:00:00 GMT,而不是2014-10-22 13:30:00

我該怎麼做?請建議我。 (FYI,目前,UTC時間是上午10點25分,印度當前時間是下午3點55分)。

我正在使用Jaxb解析器來解析XML。任何建議都會被邀請

+0

GMT不是格式 - 它實際上是一個時區。到目前爲止,你所描述的幾乎都是一個身份轉換:''''''''''''''''''' }'...在發佈的時候,UTC時間大約是16:34,*不是* 10:25 ... – 2014-10-16 16:36:15

+0

可能的重複[java日期格式](http://stackoverflow.com/questions/4772425/format-date-in-java) – msrd0 2014-10-16 16:36:57

回答

0

您可以使用SimpleDateFormat解析日期,然後將其重新格式化爲不同的時區。

String toTimeZone = "GMT"; 
String fromTimeZone = "UTC"; 
String stingvalue = "2014-10-14 03:05:39"; 

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
dateFormat.setTimeZone(TimeZone.getTimeZone(fromTimeZone)); 
Date parsedDate = dateFormat.parse(stingvalue); 

dateFormat.setTimeZone(TimeZone.getTimeZone(toTimeZone)); 

String newDate = dateFormat.format(parsedDate); 

說明

Java的Date類計算時間以毫秒計算,從1970年1月00:00:00.000 GMT。因此,您的日期屬於時區中性。要在不同的時區獲取日期,只需簡單地格式化它不同的格式

+0

事情是我們有一個用來傳遞java.util.date變量的UI。因此我需要傳遞GMT時區中創建的Date變量。我無法將字符串傳遞到UI – 2014-10-16 16:53:01

+0

在這種情況下,您只需根據所需的格式創建一個SimpleDateFormat,設置時區並格式化日期。這應該夠了吧。 – PeterK 2014-10-16 17:22:51

相關問題