1

我有一个 linux 应用程序,它以 iOS-XR 格式显示带有时区的时间:tech system clock status local-time-string "10:16:12.523 CDT Thu Mar 21 2013"

我还看到在 linux“zdump”输出中使用了“CDT”快捷方式:

zdump -v 美国/哈瓦那 | grep 2013 America/Havana Sun Mar 10 04:59:59 2013 UTC = Sat Mar 9 23:59:59 2013 CST isdst=0 gmtoff=-18000 America/Havana Sun Mar 10 05:00:00 2013 UTC = Sun Mar 10 01:00:00 2013 CDT isdst=1 gmtoff=-14400 America/Havana Sun Nov 3 04:59:59 2013 UTC = Sun Nov 3 00:59:59 2013 CDT isdst=1 gmtoff=-14400 America/Havana Sun Nov 3 05:00:00 2013 UTC = 2013 年 11 月 3 日星期日 00:00:00 CST isdst=0 gmtoff=-18000

但是当我运行“System.out.println(TimeZone.getTimeZone("CDT"));” Java 命令我得到 GMT 时区...

  1. 任何人都可以解释 Java timeZone 对象中存在快捷方式的标准是什么?
  2. 我在哪里可以找到用于将时间字符串转换为“日期”对象的开源代码...我在 Java 日历、SimpleDateFormat 和日期上使用中继的当前解析器,但由于 Java TimeZone 无法识别“CDT”,它会解析这个字符串因为是格林威治标准时间...
4

3 回答 3

2
于 2017-04-30T07:51:30.000 回答
1

1)查看java.util.DateFormatSymbols.getZoneStrings,它返回一个数组

•zoneStrings[i][0] - time zone ID
•zoneStrings[i][1] - long name of zone in standard time
•zoneStrings[i][2] - short name of zone in standard time
•zoneStrings[i][3] - long name of zone in daylight saving time

我们可以在 TimeZone.getTimeZone() 中使用 'time zone ID',其余的为 SimpleDateFormat 'z' General Time Zone

2) CDT 对于 SimpleDateFormat 是可以的,试试

new SimpleDateFormat("z").parse("CDT");

有用

于 2013-03-21T17:04:00.353 回答
0

我会尝试回答你问题的第二部分。试试乔达时间

http://joda-time.sourceforge.net/index.html

如果有帮助,请告诉我们。

于 2013-03-21T17:10:16.197 回答