Android 4.3 之前的时区使用 SimpleDateFormat 的“ZZZZZ”(+03:00)

den*_*niz 5 java android date-format

我正在使用SimpleDateFormatformat yyyy-MM-dd'T'HH:mm:ssZZZZZ。预期输出为“2014-08-26T13:00:14+03:00”。但是,“ZZZZZ”仅从 Android 4.3 开始支持。

结果如下:

  • 4.3 以上:2014-08-26T13:00:14+03:00
  • 低于 4.3:2014-08-26T13:00:14+0300

请注意时区部分是不同的(03:00 vs 0300)

我看过这个错误报告:http : //code.google.com/p/android/issues/detail?id=73209

是否可以在 4.3 以上的所有版本中获得相同的时区格式?有什么建议?

Rah*_*ran 0

这就是我使用的修复方法。

private static final SimpleDateFormat DATEFORMATRFC3339 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ", Locale.ENGLISH);

public static String formatrfc3339(Date date) {
    if(VersionUtils.isJellyBeanMR2Compatible()) {
        return DATEFORMATRFC3339.format(date);
    }
   return DATEFORMATRFC3339.format(date).replaceAll("(\\d\\d)(\\d\\d)$", "$1:$2");
}
Run Code Online (Sandbox Code Playgroud)