Java 如何从日期字符串添加GMT
这是来自db的日期 2015-06-0403:34:38 我已经像这样解析了它Java 如何从日期字符串添加GMT,java,jodatime,Java,Jodatime,这是来自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 现在,我希望这个日期自
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
当解析DateTime对象时,它会返回系统时区中的DateTime对象。因此,您的dateTime
对象已在GMT+5
中在
dateTimez
中,您只需使用相同的时区获得相同的DateTime。因此它不会改变
修复:
dateTime = dateTime.withZoneRetainFields(org.joda.time.DateTimeZone) // pass the Timezone of the DB
DateTime dateTimez = dateTime.toDateTime(dtZone);
看看如何获取timeDiff。使用此答案,您可以构建一种方法,根据所需时区添加或删除小时。来自db的日期以utc为单位