使用 SimpleDateFormat 将具有 GMT 时区的字符串解析为日期
我在从以下格式的输入字符串解析日期时遇到问题:
String input = "Fri Jul 15 12:00:00 GMT+300 2011";
String dateFormat = "EEE MMM d HH:mm:ss z yyyy";
Date date = new SimpleDateFormat(dateFormat).parse(input);
抛出异常:
java.text.ParseException: Unparseable date: "Fri Jul 15 12:00:00 GMT+300 2011"
at java.text.DateFormat.parse(DateFormat.java:337)
我打赌它与 GMT 字符串有关。我想我已经尝试过 z
、zzz
、zZ
和 zzzZ
。 有什么想法吗?输入的 GMT+300
是标准的、有效的输入格式吗?
I'm having problem parsing the Date from an input string that is of the following format:
String input = "Fri Jul 15 12:00:00 GMT+300 2011";
String dateFormat = "EEE MMM d HH:mm:ss z yyyy";
Date date = new SimpleDateFormat(dateFormat).parse(input);
An exception is thrown:
java.text.ParseException: Unparseable date: "Fri Jul 15 12:00:00 GMT+300 2011"
at java.text.DateFormat.parse(DateFormat.java:337)
I bet it has got something to do with the GMT string. I think I've tried it with z
, zzz
, zZ
, and zzzZ
.
Any thoughts? Is the input GMT+300
even a standard, valid input format?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题是,根据 Java 时区规范。
解决方案:操作输入字符串的时区部分。
GMT+300
==>格林威治标准时间+3:00
The problem was that
GMT+300
isn't valid GMT string according to the Java Timezone specification.Solution: Manipulating the timezone portion of input string.
GMT+300
==>GMT+3:00