这是来自db的日期 2015-06-0403:34:38
我已经像这样解析了它
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-ddHH:mm:ss");
DateTime dateTime = formatter.withOffsetParsed().parseDateTime("2015-06-0403:34:38");
结果:2015-06-04T03:34:38.000+05:00
现在我希望这个日期在这种情况下自动添加GMT +5
所以日期是2015-06-04 08:34:38
我试图像这样添加时区
java.util.Calendar now = java.util.Calendar.getInstance();
java.util.TimeZone timeZone = now.getTimeZone();
DateTimeZone dtZone = DateTimeZone.forID(timeZone.getID());
DateTime dateTimez = dateTime.toDateTime(dtZone);
结果:2015-06-04T03:34:38.000 + 05:00(这是错误的)
我正在使用JodaTime
。
答案 0 :(得分:1)
解析DateTime对象时,它会返回Systems TimeZone中的DateTime对象。因此,dateTime
对象已在GMT+5
中
在dateTimez
中,您只是使用相同的时区获得相同的DateTime。因此它不会改变。
<强>修正:强>
dateTime = dateTime.withZoneRetainFields(org.joda.time.DateTimeZone) // pass the Timezone of the DB
DateTime dateTimez = dateTime.toDateTime(dtZone);
答案 1 :(得分:0)
看看this question有关如何获取timeDiff的信息。使用此答案,您可以构建一种方法,根据所需的时区添加或删除小时。