我需要将Java App中的日期从Google App Engine本地服务器时区转换为太平洋时间。
我尝试使用
Calendar calstart =
Calendar.getInstance();
calstart.setTimeZone(TimeZone.getTimeZone("PST"));
//calstart.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"));
Date startTime = calstart.getTime();
但这给了我错误的时间(实际PST是10pm时大约是4pm)。还尝试使用注释行
America/Los_Angeles
注释,但在GAE服务器上给出的时间不正确。有什么想法/建议吗?
最佳答案
使用Joda Time,您需要的只是DateTime.withZone方法。下面的例子:
public static Date convertJodaTimezone(LocalDateTime date, String srcTz, String destTz) {
DateTime srcDateTime = date.toDateTime(DateTimeZone.forID(srcTz));
DateTime dstDateTime = srcDateTime.withZone(DateTimeZone.forID(destTz));
return dstDateTime.toLocalDateTime().toDateTime().toDate();
}
建议,切勿使用默认API进行与时间相关的计算。真可怕Joda似乎是最好的替代API。