2014-03-06 83 views
2

我用下面的的SimpleDateFormat解析字符串,解析日期刪除時區

SimpleDateFormat ft= new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy"); 
String notimeZone = ft.format(startDateTime); 
Date date = ft.parse(notimeZone); 

的startDateTime是Date對象格式「週四3月6 12點27分55秒IST 2014」值。

notimeZone變量i得到,週四3月6 12點27分55秒2014

我期待輸出變量日期爲,週四3月6 12點27分55秒2014

但相同,星期四三月06 12:27:55 IST 2014.

如何從日期對象中刪除時區。

請幫忙。

+0

「日期」是「日期」,不是格式化的字符串.. – 2014-03-06 07:04:29

+0

@RC。那麼我怎樣才能得到一個沒有時區的日期對象?是否有可能? – user3164187

+0

看到[這個答案](http://stackoverflow.com/a/1522571/180100) – 2014-03-06 07:09:43

回答

4

java.util.Date does沒有Timezone。它不知道TimeZone

當您打印時,java選取默認時區。

從概念上講,不能有沒有時區的日期時間。日期時間必須在一個且僅有一個區域中。您可以將其轉換爲其他區域,但不能沒有區域。

如果您的商業用例需要知道時區,我寧願使用Calendar類,或Joda Time。避免玩Date類。如果您的業務用例不需要任何時區意識,那麼請繼續使用日期。假設所有Date實例都在您的默認時區中。

最好的事情是使用Calendar(或Joda Time)。 Calendar有點不直觀,但你可以完成你的工作。這不是沒有理由的,Date類大多被棄用。

Timezone初始化Calendar(查看可用的構造函數)。使用Dateformat轉換並在UI中顯示您想要的任何時區。我在你之前的問題中發佈了一些代碼。這可能會幫助你。我被困在一個類似的問題。我在一個時區的數據庫中有日期。要在UI上的其他時區顯示它們,您需要將該日期時間轉換爲另一個區域。