我有一个函数,可以将字符串转换成joda时间对象并格式化它。
public static String getFormattedDatetime(String someDate) {
DateTime newDate = DateTime.parse(someDate, DateTimeFormat.forPattern("yy-MM-dd HH:mm:ss.SSS")).minusHours(7);
String formattedDate = newDate.toString("dd-MMM-yy hh:mm a");
return formattedDate;
}
该函数很好地将字符串转换为格式化的DateTime,但我在为其分配TimeZone方面遇到了问题。我传递的字符串表示从数据库中检索出的UTC时间,我需要将其转换为PST / PDT。我无法找到一种方法来:1)为新的DateTime对象分配时区;2)将该对象的时区转换为PST/PDT。目前我正在使用.minusHours处理这个问题。显然并不理想。
DateTimeZone.forID("PST")
。按地区名称调用应该会在夏令时期间返回PDT,而按PST调用将始终返回PST。 - anotherdaveDateTime newDate = DateTime.parse(someDate, DateTimeFormat.forPattern("yy-MM-dd HH:mm:ss.SSS")).withZone(DateTimeZone.forID("America/Los_Angeles"));
但它仍然没有转换日期。这段代码只是给我的对象分配了一个时区,而没有实际转换它吗?我需要先分配一个UTC时区,然后再转换为PST吗? - BarFooBar