- output string does not have second part if it's "00". See LocalTime.toString()
- it converts "+00:00" to "Z"
- if micro/nano second is present, output string will always be 3 digits, e.g. 100, 100200
// 2020-02-28T11:00Z
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00+00:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.0+00:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.00+00:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.000+00:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.0000+00:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.00000+00:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.000000+00:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.0Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.00Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.000Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.0000Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.00000Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.000000Z"));
System.out.println();
// 2020-02-28T11:00:05Z
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:05+00:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:05Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:05+00:00"));
System.out.println();
// 2020-02-28T11:00+01:00
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00+01:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.0+01:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.00+01:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.000+01:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.0000+01:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.00000+01:00"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.000000+01:00"));
System.out.println();
// 2020-02-28T11:00:00.100Z
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.1Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.10Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.100Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.1000Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.10000Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.100000Z"));
System.out.println();
// 2020-02-28T11:00:00.123Z
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.123Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.1230Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.12300Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.123000Z"));
System.out.println();
// 2020-02-28T11:00:00.123400Z
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.1234Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.12340Z"));
System.out.println(OffsetDateTime.parse("2020-02-28T11:00:00.123400Z"));
System.out.println();