基本上我的日期字符串是 ISO-8601 日期字符串,所以我搜索了将 ISO-8601 日期字符串转换为日期,但解决方案很长。这是详细信息。
我有一个字符串 2018-02-02T06:54:57.744Z
想将其转换为 Date 但出现错误:
java.text.ParseException: Unparseable date: "2018-02-02T06:54:57.744Z"
我正在使用以下技术来做到这一点但没有成功:
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX");
parser.setTimeZone(TimeZone.getTimeZone("UTC"));
Date parsed = parser.parse(utcDateString);
return parsed;
我还使用以下模式 SimpleDateFormat
但没有成功:
yyyy-MM-dd'T'HH:mm:ss.SSSZ
yyyy-MM-dd HH:mm:ss.S
yyyy-MM-dd'T'HH:mm:ssX
yyyy-MM-dd'T'HH:mm'Z'
这个问题的任何解决方案。
原文由 Zulqarnain Mustafa 发布,翻译遵循 CC BY-SA 4.0 许可协议
Z
是时区。您必须在日期字符串的末尾添加时区或简单地将其从格式中删除:yyyy-MM-dd'T'HH:mm:ss
带时区的正确日期字符串是这样的:
2018-02-02T06:54:57.744+0200