tl;博士
输入字符串使用标准 ISO 8601 格式。
Instant.parse ( "2011-08-12T20:17:46.384Z" )
国际标准化组织 ISO 8601
这种格式由合理的实用标准ISO 8601定义。
将日期部分与时间部分分开。末尾表示 UTC(即,从 UTC 的偏移量为零小时-分钟-秒)。发音为“祖鲁语”。T
Z
Z
java.time
与最早的Java版本捆绑在一起的旧日期时间类已被证明设计不佳,令人困惑且麻烦。避免它们。
相反,请使用 Java 8 及更高版本中内置的 java.time 框架。java.time类取代了旧的日期时间类和非常成功的Joda-Time库。
默认情况下,java.time 类在解析/生成日期时间值的文本表示形式时使用 ISO 8601。
Instant
类以 UTC 格式表示时间轴上的某个时刻,分辨率为纳秒。该类可以直接解析输入字符串,而无需费心定义格式设置模式。
Instant instant = Instant.parse ( "2011-08-12T20:17:46.384Z" ) ;
关于 java.time
java.time 框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧旧日期时间类,如java.util.Date
,Calendar
和SimpleDateFormat
。
要了解更多信息,请参阅 Oracle 教程。搜索 Stack Overflow 以获取许多示例和解释。规格是JSR 310。
Joda-Time 项目现在处于维护模式,建议迁移到 java.time 类。
您可以直接与数据库交换 java.time 对象。使用符合 JDBC 4.2 或更高版本的 JDBC 驱动程序。不需要字符串,不需要类。Hibernate 5 & JPA 2.2 支持 java.time。java.sql.*
从哪里获取 java.time 类?