java - 转换乔达日期时间

标签 java jodatime

我有一个像 "2007-03-12T04:27:00.000+01:00" 这样的字符串,我想将其转换为日期时间对象并进行一些计算。目前我正在使用joda.time。当我将其转换为 joda DateTime 对象并尝试打印时,它显示为 "2007-03-12T08:57:00.000+05:30"。我如何打印具有相同时区的值。

最佳答案

除非您指定所需的时区,否则 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);

关于java - 转换乔达日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12979773/

相关文章:

java - Joda 日期格式问题

java - 部分搜索集合java

Java 简单并发服务器

unit-testing - 使用 Joda Time 进行 Grails Controller 单元测试

使用 joda 日期时间的 Scala 日期时间转换

java - JodaTime:plusMonths(1) 两次不同于 plusMonths(2)

java - 带有main方法的spring3注解

java - 如果输入参数无效,如何在构造函数中制作防御性副本

java - 如何直接调用 JAXB XMLAdapter

ISODateTimeFormat.dateTime() 的 javadoc