Joda DateTime对象添加+1小时

时间:2014-10-30 10:42:50

标签: android jodatime

我有以下代码:

        Log.e(TAG, "startTime = " + startTime);

        DateTime dateTimeStart = new DateTime(startTime);

        Log.e(TAG, "dateTimeStart = " + dateTimeStart  );

当注销时产生以下内容:

 startTime = 2014-10-30T12:00:00+00:00

dateTimeStart = 2014-10-30T13:00:00.000+01:00 

为什么额外的小时会被添加到原始时间?

编辑 如何删除+1:00,我还没有指定。

由于

3 个答案:

答案 0 :(得分:4)

DateTime是一个由日期,时间和时区组成的对象。在您的情况下,您使用startTime并使用默认系统时区将其转换为等效的DateTime

+01:00表示“此时间戳位于某个UTC + 1时区”,因此12:00:00.000+00:00表示与13:00:00.000+01:00相同

所以你的时间戳是在英国时间12:00中欧时间= 13:00创建的。

如果您想要UTC时间,请执行

DateTime dateTimeStart = new DateTime(startTime, DateTimeZone.UTC);

答案 1 :(得分:0)

使用拆分方法。

 String splitDateTime[]=dateTimeStart.split("\\+");

 dateTimeStart=splitDateTime[0];

答案 2 :(得分:0)

默认DateTime::toString()方法以yyyy-MM-ddTHH:mm:ss.SSSZZ格式返回日期 +01:00+00:00是时区偏移量(日期格式为ZZ)。

因此,如果要打印没有时区偏移的日期,则应使用其他格式。例如。使用方法DateTime::toString(String)

String dtFormat = "yyyy-MM-dd'T'HH:mm:ss";
Log.e(TAG, "startTime = " + startTime.toString(dtFormat));   
...  

Log.e(TAG, "dateTimeStart = " + dateTimeStart.toString(dtFormat ));