如何从日期字符串添加 GMT
How to add GMT from date string
这是来自数据库的日期
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
。
当您解析 DateTime 对象时,它 returns 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);
查看 this question 如何获取 timeDiff。使用此答案,您可以构建一种方法来根据所需时区添加或删除小时。
这是来自数据库的日期 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
。
当您解析 DateTime 对象时,它 returns 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);
查看 this question 如何获取 timeDiff。使用此答案,您可以构建一种方法来根据所需时区添加或删除小时。