我正在从外部系统接收一个DateTime对象。
我收到一个类似2012-06-20T13:30:00+05:30
的日期。外部系统使用Joda-Time API创建了日期。
我找不到相应的日期格式。此外,我想将时间转换为09:00:00+01:30
(不同的时区)。
该字符串表示日期、时间和与UTC的偏移量。
正偏移量表示"在UTC之前",向东。负的意思是"在UTC之后",向西。在你的例子中,+05:30
是现代印度时间。
此格式由ISO 8601标准正式定义。这个标准非常有用。请务必阅读维基百科页面。
Joda-Time库和新的java。在Java 8中,广泛使用ISO 8601。该格式是解析和生成日期-时间值的字符串表示的默认格式。
只需将该字符串传递给DateTime的构造函数。并将时区对象传递给构造函数。或稍后调用withZone
方法调整时区
DateTimeZone timeZoneParis = DateTimeZone.forID( "Europe/Paris" );
DateTime dateTimeParis = new DateTime( myIsoString, timeZoneParis );
我对你提到的+01:30
的偏移量感到困惑。我在时区列表中没有看到这样的偏移。这样的偏移量在历史上的南非使用了十年。