2017-10-19 123 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)是否爲真。