2017-02-17 19 views
-1

次の日付形式 '2017-02-16T17:29:12.12T + 0200'をZonedDateTimeに解析しようとしています。ZonedDateTimeのJava日付カスタムフォーマット

私の目標は、2017-02-16T17:29:12.12を変更せずに(システムタイムゾーンにシフトしないで)+2時間(GMTから)で表されるタイムゾーンに関連付けられるようにすることです。日付上記の例で

@Test 
public void testParseCustomDate() throws Exception { 
    String format = "yyyy-MM-dd'T'HH:mm:ss.S'T'Z"; 
    String value = "2017-02-16T17:29:12.12T+0300"; 

    Date date = new SimpleDateFormat(format).parse(value); 
    System.out.println(date); 

    ZonedDateTime dateTime = ZonedDateTime.parse(value, DateTimeFormatter.ofPattern(format)); 
    System.out.println(dateTime); 
} 

が正常ZonedDateTime.parse

答えて

1

SimpleDateFormatDateTimeFormatterSimpleDateFormatなくによって解析される異なります。あなたのサンプルの日付を解析するには、2番目の画分について一つの「S」を追加する必要があります:それは次のような出力を生成します

String format = "yyyy-MM-dd'T'HH:mm:ss.SS'T'Z"; 

Thu Feb 16 15:29:12 CET 2017 
2017-02-16T17:29:12.120+03:00 
+0

はあなたに感謝、それが役立ちます – endryha