将JODA UTC时间转换为时区

时间:2014-09-08 16:43:57

标签: java datetime jodatime

使用以下代码块,我尝试使用字符串形式将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);


}

当我运行时,时间保持不变,尽管应该有明显的差异。

我哪里出错了,我的方法完全偏离了吗?

1 个答案:

答案 0 :(得分:0)

LocalDateTime的toDateTime()方法返回DateTime。在您的代码中,您调用了DateTime()但丢弃了返回值。相反,你会想要做这样的事情:

DateTime newDateTime = startDateTime.toDateTime(DateTimeZone.forID(timezone));