2014-10-31 185 views
0

我有一個日期字符串,如下所示: - Fri Oct 31 11:30:58 GMT+05:30 2014 我想將它轉換爲2014-10-31T6:00:00,這應該是在添加了偏移量之後。我該怎麼做?格式化日期字符串java

+0

的SimpleDateFormat類 – tom 2014-10-31 10:47:45

+0

@湯姆可以請你張貼在如何做到這一點的例子嗎? – 2014-10-31 10:48:51

+0

有大量的例子在stackoverflow – tom 2014-10-31 10:49:40

回答

0

首先,您需要一個SimpleDateFormat,其格式與您的輸入String:"EEE MMM dd HH:mm:ss z yyyy"相匹配。看一看:SimpleDateFromat API

SimpleDateFormat in = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 

然後你就可以分析輸入的字符串來獲得對應的Date對象,如下所示:

Date date = in.parse("Fri Oct 31 11:30:58 GMT+05:30 2014"); 

注意,Date對象不具有時區作爲其狀態的一部分。如果您想以UTC打印日期,則需要另一個SimpleDateFormat格式化並在您所需的時區打印日期。

SimpleDateFormat out = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
    out.setTimeZone(TimeZone.getTimeZone("UTC")); 
    out.format(date); 

例子:http://ideone.com/Wojec3

public static void main (String[] args) throws java.lang.Exception 
{ 
    SimpleDateFormat in = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 
    SimpleDateFormat out = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
    out.setTimeZone(TimeZone.getTimeZone("UTC")); 

    Date date = in.parse("Fri Oct 31 11:30:58 GMT+05:30 2014"); 

    System.out.println(out.format(date)); 
} 
+0

非常感謝..救了我的一天 – 2014-11-03 04:56:31

0

這應該做的任務,我猜。

public static void main(String args[]) { 
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    format.setTimeZone(TimeZone.getTimeZone("UTC")); 
    System.out.println(format.format(new Date())); 
}