首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >日期格式是什么? 2011-08-12T20:17:46.384Z

日期格式是什么? 2011-08-12T20:17:46.384Z
EN

Stack Overflow用户
提问于 2011-12-07 02:45:57
回答 9查看 614.2K关注 0票数 541

我有以下日期:2011-08-12T20:17:46.384Z。这是什么格式?我正在尝试通过DateFormat.getDateInstance().parse(dateStr)用Java1.4解析它,我得到了

java.text.ParseException:无法解析的日期:"2011-08-12T20:17:46.384Z“

我认为我应该使用SimpleDateFormat进行解析,但我必须首先知道格式字符串。到目前为止,我只知道yyyy-MM-dd,因为我不知道这个字符串中的T是什么意思--与时区相关的东西?此日期字符串来自Files CMIS download history media type上显示的lcmis:downloadedOn标记。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-12-07 02:49:11

T只是分隔日期和时间的文字,Z表示“零小时偏移量”,也称为"Zulu时间“(UTC)。如果你的字符串总是有一个"Z“,你可以使用:

代码语言:javascript
复制
SimpleDateFormat format = new SimpleDateFormat(
    "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));

或者使用Joda Time,您可以使用ISODateTimeFormat.dateTime()

票数 659
EN

Stack Overflow用户

发布于 2016-04-23 00:20:40

tl;dr

您的输入字符串使用标准格式。

代码语言:javascript
复制
Instant.parse ( "2011-08-12T20:17:46.384Z" ) 

ISO 8601

这种格式是由合理的实用标准ISO 8601定义的。

T将日期部分与时间部分分开。末尾的Z表示UTC (即从UTC偏移0小时-分-秒)。Zpronounced “Zulu”

java.time

与Java的最早版本捆绑在一起的旧的日期-时间类已经被证明是设计糟糕、令人困惑和麻烦的。避开他们。

取而代之的是,使用Java8和更高版本中内置的java.time框架。java.time类替代了旧的date-time类和非常成功的Joda-Time库。

在解析/生成日期-时间值的文本表示形式时,java.time类默认使用ISO 8601

Instant类表示UTC中时间轴上的某个时刻,分辨率为nanoseconds。这个类可以直接解析您的输入字符串,而无需定义格式化模式。

代码语言:javascript
复制
Instant instant = Instant.parse ( "2011-08-12T20:17:46.384Z" ) ;

关于java.time

框架内置于Java8和更高版本中。这些类取代了麻烦的旧legacy日期时间类,如java.util.DateCalendarSimpleDateFormat

要了解更多信息,请参阅。和搜索堆栈溢出,以获得许多示例和解释。规范为JSR 310

现在在maintenance mode中的项目建议迁移到java.time类。

您可以直接与数据库交换java.time对象。使用与JDBC 4.2或更高版本兼容的JDBC driver。不需要字符串,也不需要java.sql.*类。Hibernate 5和JPA2.2支持java.time。

从哪里获取java.time类?

  • ,、、和更高版本-标准Java API的一部分,具有捆绑的实现。
    • 带来了一些次要的特性和fixes.

  • 和.

中的

  • 大多数java.time功能已向后移植到Java6和7

    • 更高版本的Android (26+)捆绑了java.time类的实现。
    • 对于早期的Android (<26),一个称为的过程带来了一个subset of the 功能,这个功能最初并没有内置到Android中。
      • 如果去糖化没有提供你需要的东西,项目会让 (上面提到的)适应安卓系统。请参阅.

票数 151
EN

Stack Overflow用户

发布于 2011-12-07 02:48:39

不确定Java解析,但那是ISO8601:http://en.wikipedia.org/wiki/ISO_8601

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

https://stackoverflow.com/questions/8405087

复制
相关文章

相似问题

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