2017-10-19 150 views

回答

0

找到了解决办法

Instant.from(DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(dateStr)) 
+1

你确定这解析了字符串'Wed Aug 09 17:11:53 +0000 2017'? – 2017-10-19 00:28:43

+0

我得到'java.time.format.DateTimeParseException:Text'Wed Aug 09 17:11:53 +0000 2017'无法在索引0处解析。 –

1

按照documentation of DateTimeFormatter

DateTimeFormatter dtf 
      = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss X uuuu", Locale.ROOT); 
    Instant asInstant = OffsetDateTime.parse(dateStr, dtf).toInstant(); 

你的榜样字符串的结果是

2017-08-09T17:11:53Z 

它从Twitter documentation似乎是一个Instant将那偏移永远是+0000。根据您信任这种情况的强烈程度,您可以使用小格式x或大写字母Z而不是大写字母X。如果你想要更严格的验证,你也可以在转换为Instant之前检查OffsetDateTime.getOffset().equals(ZoneOffset.UTC)是否为真。