我正在尝试将服务器日期字符串转换为本地/设备设置本地时间,但没有成功。我正在使用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。我无法让它返回正确的小时/日期时间。
我读过很多关于此事的帖子,但我没有设法让它变得简单,干净和有效。
答案 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;
}