首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取ISO 8601格式的带有日期、小时和分钟的当前时刻?

如何获取ISO 8601格式的带有日期、小时和分钟的当前时刻?
EN

Stack Overflow用户
提问于 2010-10-12 20:00:44
回答 14查看 430.3K关注 0票数 375

要获得当前时刻的ISO 8601格式表示,最优雅的方式是什么?它应该看起来像:2010-10-12T08:50Z

示例:

代码语言:javascript
复制
String d = DateFormat.getDateTimeInstance(DateFormat.ISO_8601).format(date);
``
EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2010-10-12 20:10:25

使用SimpleDateFormat格式化所需的任何Date对象:

代码语言:javascript
复制
TimeZone tz = TimeZone.getTimeZone("UTC");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'"); // Quoted "Z" to indicate UTC, no timezone offset
df.setTimeZone(tz);
String nowAsISO = df.format(new Date());

使用如上所示的new Date()将格式化当前时间。

票数 335
EN

Stack Overflow用户

发布于 2010-10-12 21:05:00

对于默认时区不是UTC的系统:

代码语言:javascript
复制
TimeZone tz = TimeZone.getTimeZone("UTC");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
df.setTimeZone(tz);
String nowAsISO = df.format(new Date());

如果经常需要,可以将SimpleDateFormat实例声明为全局常量,但要注意该类不是线程安全的。如果被多个线程并发访问,则必须同步。

编辑:如果做很多不同的时间/日期操作,我更喜欢Joda Time…

EDIT2:已更正:setTimeZone不接受字符串(由EDIT2更正)

票数 232
EN

Stack Overflow用户

发布于 2013-01-11 16:36:17

来自Apache commons-lang3DateFormatUtils具有有用的常量,例如:DateFormatUtils.ISO_DATETIME_FORMAT

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3914404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档