使用以下代码块,我尝试使用字符串形式将UTC JODA时间转换为指定的时区,例如" Asia / Tokyo"
public void handleTimezoneConversion(TimesheetEntry timesheetEntry, String timezone) {
System.out.println("TO :"+timezone);
System.out.println(timesheetEntry.getStartDateTime());
LocalDateTime startDateTime = timesheetEntry.getStartDateTime();
startDateTime.toDateTime(DateTimeZone.forID(timezone));
timesheetEntry.setStartDateTime(startDateTime);
System.out.println(timesheetEntry.getStartDateTime());
LocalDateTime endDateTime = timesheetEntry.getEndDateTime();
endDateTime.toDateTime(DateTimeZone.forID(timezone));
timesheetEntry.setEndDateTime(endDateTime);
}
当我运行时,时间保持不变,尽管应该有明显的差异。
我哪里出错了,我的方法完全偏离了吗?
答案 0 :(得分:0)
LocalDateTime的toDateTime()方法返回DateTime。在您的代码中,您调用了DateTime()但丢弃了返回值。相反,你会想要做这样的事情:
DateTime newDateTime = startDateTime.toDateTime(DateTimeZone.forID(timezone));