ebay api将时间戳重新设置为<Timestamp>2014-11-13T06:31:38.258Z</Timestamp>
,必须将其解析为java.util.Date,我可以使用以下yyyy-MM-dd'T'HH:mm:ss.sssZ
,但结果是时区2014-11-13T02:03:23.023-0500
尝试使用下面的代码行格式化结果freemarker
<#assign readddate =
objectConstructor("java.text.SimpleDateFormat","yyyy-MM-dd'T'HH:mm:ss.sssZ")>
结果
[12:41:03 PM] Somasundaram: Caused by: java.text.ParseException:
Unparseable date: "2014-11-11T05:28:45.000Z"
答案 0 :(得分:1)
您应该将模式的时区说明符部分更改为X
,这是ISO-8601时区(以及UTC偏移)说明符:
objectConstructor("java.text.SimpleDateFormat","yyyy-MM-dd'T'HH:mm:ss.sssX")
这将处理Z
并将其正确地视为UTC。
请注意,这是在Java 7中引入的 - 如果您使用的是Java 6或更早版本,那么您需要一个不同的解决方案。 (让我知道;希望这对你来说不会成为问题。)
您对&#34;的评论结果为时区2014-11-13T02:03:23.023-0500&#34;表示您可能没有意识到java.util.Date
时区。如果某些内容正在将其转换为UTC-5时间,那么它可能会应用本地时区 - 如果您格式化一个值,或者解析没有&#39;如果包括UTC偏移,则应在SimpleDateFormat
中指定时区。