2015-08-30 18 views
2

我已经建立了接收字符串格式和时区ID日期的功能,并变换日期的时区时间:如何将一个字符串转换为特定时区的DateTime,并保存该时区的日期?

public static DateTime transformSrcTimeInTzTime(String timeAsString, String timezoneId){ 
    DateTimeZone zone = DateTimeZone.forID(timezoneId); 
    DateTimeZone.setDefault(zone); 
    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss"); 
    DateTime tzDate = formatter.parseDateTime(timeAsString); 
    System.out.println("++++ timeAsString: " + tzDate.toString(formatter)); 
    DateTimeZone.setDefault(DateTimeZone.forID(Constants.SERVER_TIMEZONE)); 
    return tzDate; 
} 

我不喜欢DateTimeZone.setDefault的一部分;有什么办法可以做到这一点吗?

回答

0

只需设置DateTimeFormatter本身的区域。

DateTimeZone zone = DateTimeZone.forID(timezoneId); 
DateTimeFormatter formatter = DateTimeFormat 
         .forPattern("dd/MM/yyyy HH:mm:ss") 
         .withZone(zone); 
DateTime tzDate = formatter.parseDateTime(timeAsString).withZone(zone); 
return tzDate; 
相关问题