时区偏移格式+ HH:mm对+ HHmm

时间:2012-09-16 22:50:26

标签: android android-date

我需要与一个未实现完整ISO 8601的应用程序通信,并且只接受格式+ HH:mm用于时区偏移。

Android似乎只在SampleDateFormat中使用'z'生成格式+ HHmm(小时和分钟之间没有':'字符)。

代码示例:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
String str = String.format(Locale.US, "%s", sdf.format(new Date(0)));

生成:1970-01-01T00:00 + 0000

我想生成:1970-01-01T00:00 + 00:00

有没有简单的方法可以产生理想的输出而无需编写代码来操作字符串?

谢谢, 路易斯

1 个答案:

答案 0 :(得分:1)

我认为最简单的方法是操纵一个字符串。

a)SimpleDateFormat不支持您所需的内容。

b)SimpleDateFormat类中的方法appendNumericTimeZone是私有的。所以,你不能覆盖它。

2)您可以创建自己的格式化程序(实现java.text.DataFormat)。但是,它会比字符串操作更麻烦。

顺便说一句。我在查看SimpleDateFormat源代码时发现了有趣的东西。有一些代码几乎可以生成你需要的代码(它添加到结尾“GMT + XX:XX”)。但是,只有在格式中指定“Z”并且系统找不到当前时区的时区名称时,才会调用此代码。