Android / Joda时间 - 将dateTime转换为我的本地DateTime

时间:2015-06-17 10:13:42

标签: android datetime timezone jodatime

我正在尝试将服务器日期字符串转换为本地/设备设置本地时间,但没有成功。我正在使用Joda时间库。

我想做什么:

private static String FORMAT_DATE_SERVER = "YYYY-MM-dd'T'HH:mm:ssZ";

public static DateTime parseServerDateToLocal(String raw_date) {

    DateTime result = DateTime.parse(raw_date, DateTimeFormat.forPattern(FORMAT_DATE_SERVER)).withZone(DateTimeZone.getDefault());

    return result;
}

仍然从服务器返回DateTime。我无法让它返回正确的小时/日期时间。

我读过很多关于此事的帖子,但我没有设法让它变得简单,干净和有效。

2 个答案:

答案 0 :(得分:4)

我找到的解决方案:

在您的应用程序类或其他地方初始化JodaTimeAndroid:

JodaTimeAndroid.init(this);

在初始化之后,日期将自动转换为您的区域,并具有适当的偏移量。这就是你解析数据的方式:

private static String FORMAT_DATE_SERVER = "yyyy-MM-dd'T'HH:mm:ssZ";
private static String raw_date = "2015-06-18T08:52:27Z";

public static DateTime parseServerDateToLocal(String raw_date) {
         return DateTime.parse(raw_date, DateTimeFormat.forPattern(FORMAT_DATE_SERVER));
}

在我的情况下,使用offset(+ 2h),返回的数据为:

  

2015-06-18T10:52:27.000 + 02:00

答案 1 :(得分:1)

试试此代码

实施例 将日期字符串格式为“2011-06-23T15:11:32”转换为时区。

.container {
    width:60%;
    margin:0 auto;
    min-height:500px;
    background:red;
    z-index: 999;
    position: absolute;
}