Java Util日期解析易趣api时间戳

Java Util日期解析易趣api时间戳,java,simpledateformat,ebay-api,Java,Simpledateformat,Ebay Api,易趣api重新运行时间戳为2014-11-13T06:31:38.258Z,必须解析为java.util.Date,我可以提供以下yyyy-MM-dd'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.s

易趣api重新运行时间戳为
2014-11-13T06:31:38.258Z
,必须解析为java.util.Date,我可以提供以下
yyyy-MM-dd'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")>

您应该将模式的时区说明符部分更改为
X
,这是ISO-8601时区(UTC偏移)说明符:

objectConstructor("java.text.SimpleDateFormat","yyyy-MM-dd'T'HH:mm:ss.sssX")
这将处理
Z
,并正确地将其视为UTC

请注意,这是在Java7中引入的—如果您使用的是Java6或更早版本,那么您将需要一个不同的解决方案。(让我知道;希望这对你来说不会是个问题。)


您关于“其结果是时区2014-11-13T02:03:23.023-0500”的评论表明您可能没有意识到
java.util.Date
没有时区。如果有什么东西正在将其转换为UTC-5时间,那么它可能正在应用本地时区-如果您正在格式化一个值,或者解析不包含UTC偏移量的文本,您应该在
SimpleDataFormat

中指定时区我已经尽可能地回答了这个问题,但是你的问题中似乎混合了格式和解析,这还不是很清楚。(也不清楚你说的“我可以带着下面的东西来”是什么意思。)如果你能把你的问题再看一遍,尽量让它更清楚,那会很有帮助——不仅是为了现在给你更多的帮助,也是为了帮助未来的读者
objectConstructor("java.text.SimpleDateFormat","yyyy-MM-dd'T'HH:mm:ss.sssX")