使用 SimpleDateFormat.java 解析时区
Parsing time zone with SimpleDateFormat.java
如何使用 SimpleDateFormat 从 "US/Mountain"、"US/Pacific"、...等中解析时区?
以下代码抛出 ParseException
String pattern = "MM/dd/yyyyy hh:mm a zzzz";
String value = "7/18/2016 05:00 PM US/Mountain";
new SimpleDateFormat(pattern).parse(value);
根据http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html#timezone
我应该能够使用 'z'(或多个 z)从文本中获取时区,但我不确定 SimpleDateFormat.java 正在查看的字符串或模式列表。
我知道我可以使用不同的 Java 库,甚至可以自己为一组有限的时区和字符串执行此操作(呃)。
但我的问题真的是关于正确使用或 SimpleDateFormat 来做到这一点?
据我所知,z
指的是时区的 "display name"。
您可以尝试使用 TimeZone.getTimeZone("US/Mountain")
然后使用方法 getDisplayName()
获取其显示名称
可能像这样就足够了。
TimeZone tz = TimeZone.getTimeZone("US/Mountain");
String pattern = "MM/dd/yyyyy hh:mm a zzzz";
String value = "7/18/2016 05:00 PM " + tz.getDisplayName();
System.out.println(new SimpleDateFormat(pattern).parse(value));
张贴我的评论作为答案:
我相信你的模式中有一个多余的 'a' ))
如何使用 SimpleDateFormat 从 "US/Mountain"、"US/Pacific"、...等中解析时区?
以下代码抛出 ParseException
String pattern = "MM/dd/yyyyy hh:mm a zzzz";
String value = "7/18/2016 05:00 PM US/Mountain";
new SimpleDateFormat(pattern).parse(value);
根据http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html#timezone
我应该能够使用 'z'(或多个 z)从文本中获取时区,但我不确定 SimpleDateFormat.java 正在查看的字符串或模式列表。
我知道我可以使用不同的 Java 库,甚至可以自己为一组有限的时区和字符串执行此操作(呃)。
但我的问题真的是关于正确使用或 SimpleDateFormat 来做到这一点?
据我所知,z
指的是时区的 "display name"。
您可以尝试使用 TimeZone.getTimeZone("US/Mountain")
然后使用方法 getDisplayName()
可能像这样就足够了。
TimeZone tz = TimeZone.getTimeZone("US/Mountain");
String pattern = "MM/dd/yyyyy hh:mm a zzzz";
String value = "7/18/2016 05:00 PM " + tz.getDisplayName();
System.out.println(new SimpleDateFormat(pattern).parse(value));
张贴我的评论作为答案: 我相信你的模式中有一个多余的 'a' ))