Java Util日期解析ebay api时间戳

时间:2014-11-13 07:16:36

标签: java simpledateformat ebay-api

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"

1 个答案:

答案 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中指定时区。