2015-08-14 68 views
1
String strDateTime = "2015-08-14 16:25:12"; //From database that was stored in UTC 
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").withZone(DateTimeZone.UTC);  
DateTime dateTime = DateTime.parse(strDateTime, dateTimeFormatter); 
LocalDateTime local = dateTime.toLocalDateTime(); 
// local = 2015-08-14T16:25:12.000 

I want to get the date in my local time zone??? 
where local = 2015-08-14T11:25:12.000 // 11 VS 16 

任何想法我在這裏做錯了嗎?這種使用ISO日期時間格式如何解析UTC時間並顯示JodaTime java中的本地時間?

回答

3

在喬達,一個LocalDateTime不是日期時間你現在所在,這是沒有任何時區信息的日期時間。從the docs

LocalDateTime是一個不可修改的日期時間類,它表示沒有時區的日期時間。

通過詢問dateTime.toLocalDateTime(),您只是要求與原始UTC版本相同的DateTime,但將UTC信息剝離。相反,它聽起來像你想在時區之間轉換; LocalDateTime可能對您或您的解決方案沒有用處。

使用DateTime.toDateTime(DateTimeZone)在時區之間進行轉換;您可以使用DateTimeZone.getDefault來獲取系統的默認時區,這可能是您要查找的內容。