【发布时间】:2011-09-10 21:36:48
【问题描述】:
我正在尝试转换此字符串:
2011-06-07T14:08:59.697-07:00
到目前为止,我是这样做的:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S");
Date date1 = sdf.parse("2011-06-07T14:08:59.697", new java.text.ParsePosition(0));
几乎一切都很好,除了最重要的部分,时区!
SimpleDateFormat 的问题在于,它需要 +/-hhmm 的 TimeZone 而我的是 +/-hh:mm 格式。
另外,我不知道为什么,这行得通:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.S Z");
Date date1 = sdf.parse("2011-06-07T14:08:59.697 -0700", new java.text.ParsePosition(0));
但这不是(时区前的空格):
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SZ");
Date date1 = sdf.parse("2011-06-07T14:08:59.697-0700", new java.text.ParsePosition(0));
将此日期2011-06-07T14:08:59.697-07:00 转换为 java 日期的正确格式是什么?
感谢您的帮助!
【问题讨论】:
-
(我会说它是完全重复的,另一个问题也必须处理ISO8601时区的冒号问题)
-
哎呀,对不起。我应该关闭它还是标记它?