用Java输出RFC 3339时间戳

克里斯蒂安:

我想输出带有PST偏移量的时间戳(例如2008-11-13T13:23:30-08:00)。java.util.SimpleDateFormat似乎没有以hour:minute格式输出时区偏移量,但排除了冒号。有没有一种简单的方法来获取Java中的时间戳?

// I want 2008-11-13T12:23:30-08:00
String timestamp = new SimpleDateFormat("yyyy-MM-dd'T'h:m:ssZ").format(new Date());
System.out.println(timestamp); 
// prints "2008-11-13T12:23:30-0800" See the difference?

另外,SimpleDateFormat无法正确解析上述示例。它抛出一个ParseException

// Throws a ParseException
new SimpleDateFormat("yyyy-MM-dd'T'h:m:ssZ").parse("2008-11-13T13:23:30-08:00")
丹尼尔·贝克(Daniel Beck):

从Java 7开始,X提供了ISO8601时区模式字符串。对于您描述的格式的字符串,请使用XXX请参阅文档

样品:

System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX")
        .format(new Date()));

结果:

2014-03-31T14:11:29+02:00

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章