我有一个像"2007-03-12T04:27:00.000+01:00"
的字符串,我想将它转换为datetime对象并进行一些计算。目前我正在使用joda.time
。当我将其转换为joda DateTime对象并尝试打印时,它显示为"2007-03-12T08:57:00.000+05:30"
。如何使用相同的时区打印值。
答案 0 :(得分:0)
// get current moment in default time zone
DateTime dt = new DateTime();
// translate to London local time
DateTime dtLondon = dt.withZone(DateTimeZone.forID("Time Zone ID here"));//Europe/Paris
您可以找到时区ID here
的详细列表答案 1 :(得分:0)
除非您指定所需的时区,否则DateTime默认为计算机本地时区。 DateTime(Object)构造函数使用偏移量来确定您的意思,但它不使用偏移量来设置时区。所以而不是:
DateTime localDateTime = new DateTime("2007-03-12T04:27:00.000+01:00");
解析偏移量并获取适当的DateTimeZone,并将其提供给DateTime。
DateTimeZone zone1 = DateTimeZone.forOffsetHoursMinutes(01, 00);
DateTime localDateTime = new DateTime("2007-03-12T04:27:00.000", zone1);