TL;博士
convert string date format into java.time.Instant
跳过格式化模式.只是解析.
Instant.parse( "2018-07-17T09:59:51.312Z" )
ISO 8601
是的,你使用了错误的格式化模式,如first Answer所示.
但是您根本不需要指定格式化模式.您的输入字符串采用标准ISO 8601格式.在解析/生成字符串时,java.time类默认使用ISO 8601格式.
末尾的Z表示UTC,发音为“Zulu”.
Instant instant = Instant.parse( "2018-07-17T09:59:51.312Z" ) ;
关于java.time
要了解更多信息,请参阅Oracle Tutorial.并搜索Stack Overflow以获取许多示例和说明.规格是JSR 310.
您可以直接与数据库交换java.time对象.使用符合JDBC 4.2或更高版本的JDBC driver.不需要字符串,不需要java.sql.*类.
从哪里获取java.time类?
> Java 9增加了一些小功能和修复.
>大部分java.time功能都被反向移植到Java 6& 7月在ThreeTen-Backport.
>更新版本的Android捆绑java.time类的实现.
>对于早期的Android(< 26),ThreeTenABP项目适应ThreeTen-Backport(如上所述).见How to use ThreeTenABP….
ThreeTen-Extra项目使用其他类扩展了java.time.该项目是未来可能添加到java.time的试验场.您可以在这里找到一些有用的类,例如Interval,YearWeek,YearQuarter和more.