我在我的代码中使用了SimpleDateFormat
,如下所示。
SimpleDateFormat sdf = new SimpleDateFormat("ZZZZ");
我想将结果显示为GMT-05:00
。我在Android 4.3中运行我的代码。它返回了与我预期相同的结果。但是,对于Android版本4.0,4.1和4.2,上面的代码行返回-05:00
而不是GMT-05:00
(GMT
丢失了)。我糊涂了。我已经阅读了Android的SimpleDateFormat。
有人可以给我一些想法吗?
答案 0 :(得分:0)
您可以使用DateFormats
在任何时区将日期转换为字符串:
DateFormat df = DateFormat.getTimeInstance();
df.setTimeZone(TimeZone.getTimeZone("gmt"));
String gmtTime = df.format(new Date());
答案 1 :(得分:0)
另外检查一下:
SimpleDateFormat dateFormatGmt = new SimpleDateFormat("dd:MM:yyyy");
dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(dateFormatGmt.format(new Date()));
答案 2 :(得分:0)
由于文档仅显示最新版本,因此无法在Android 4.3之前找到SimpleDateFormat sdf = new SimpleDateFormat("ZZZZ");
是否始终返回GMT-05:00
。
我能想到的最佳近似值是SimpleDateFormat sdf = new SimpleDateFormat("'GMT'Z", Locale.US);
,它会明确地添加GMT,但时间格式没有冒号(例如GMT-0500
)。
编辑:如果你能确保在4.1和4.2上,你的代码返回-05:00
,那么我认为你可以添加版本检查器并决定使用哪个SimpleDateFormat
。
if (Build.VERSION.SDK_INT >= 18) {
SimpleDateFormat sdf = new SimpleDateFormat("ZZZZ", Locale.US);
} else {
SimpleDateFormat sdf = new SimpleDateFormat("'GMT'ZZZZ", Locale.US);
}
答案 3 :(得分:0)
我遇到了类似的问题,但是对于' ZZZZZ',我发现一些SimpleDateFormat修补程序仅在4.3+上添加:https://code.google.com/p/android/issues/detail?id=73209
自' ZZZZZ'和' ZZZZ'记录在一起,我假设行为是在4.0,4.1& 4.2