如何获取缩写时区?

3

我正在尝试获取缩写的时区,例如PST、EDT等。我已经成功地获取了一个偏移量,但是无法根据偏移量获得缩写的时区。

有人可以帮忙吗?

例如,当

tz = America/Phoenix and time =1450759239340

DateTimeFormat.forPattern("zzz").withZone(tz).print(time);

我得到的结果是-07:00

我能否使用这些可用代码获取缩写的时区?

提前感谢您的帮助。


1
无法复现。在Windows 7上使用JDK 1.8.0_51和joda-time-2.9.1,我得到了3个小写z的MST,以及4个z的Mountain Standard Time。对于1、2和3个大写Z,我得到了:-0700-07:00America/Phoenix - undefined
相同的代码在Java 1.7中生成了MST,但在1.8.0-60版本中显示了偏移量。这可能是joda-time插件为了适应Java 8所做的更改吗? - undefined
1个回答

1
这里是使用SimpleDateFormat和Calendar类获取不同日期格式的方法。
其中之一是使用小写字母z来获取PDT、IST等输出。
如果您想要详细的名称,请使用zzzz
我建议从下面选择您所需的日期格式:
"yyyy.MM.dd G 'at'              HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"              Wed, Jul 4, '01
"h:mm a"                        12:08 PM
"hh 'o''clock' a, zzzz"         12 o'clock PM, Pacific Daylight Time
"K:mm a, z"                     0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"  02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"    Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"                 010704120856-0700        
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"    2001-07-04T12:08:56.235-0700

你可以使用SimpleDateFormat从日期获取适当格式的字符串,或者反之。例如:
String originalString = "2010-07-14 09:00:02";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(originalString);
String newString = new SimpleDateFormat("H:mm").format(date); 

在同一网站上查看我的博客

希望它能有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接