diff --git a/src/main/java/com/ethlo/time/DateTime.java b/src/main/java/com/ethlo/time/DateTime.java index 5d38005..a890670 100644 --- a/src/main/java/com/ethlo/time/DateTime.java +++ b/src/main/java/com/ethlo/time/DateTime.java @@ -444,12 +444,12 @@ private String toString(final DateTime date, final Field lastIncluded, final int } // Fractions - if (lastIncluded.ordinal() >= Field.NANO.ordinal()) + if (fractionDigits > 0 && lastIncluded.ordinal() >= Field.NANO.ordinal()) { buffer[19] = '.'; LimitedCharArrayIntegerUtil.toString(date.getNano(), buffer, 20, fractionDigits); } - return finish(buffer, 20 + fractionDigits, tz); + return finish(buffer, 19 + (fractionDigits > 0 ? 1 : 0) + fractionDigits, tz); } /** diff --git a/src/test/java/com/ethlo/time/FormatterTest.java b/src/test/java/com/ethlo/time/FormatterTest.java index f4d24c3..6d0cd19 100644 --- a/src/test/java/com/ethlo/time/FormatterTest.java +++ b/src/test/java/com/ethlo/time/FormatterTest.java @@ -120,4 +120,11 @@ void testFormat5() final OffsetDateTime date = ITU.parseDateTime(s); assertThat(ITU.formatUtcMilli(date)).isEqualTo("2017-02-21T02:27:39.123Z"); } + + @Test + void testTostring() + { + final DateTime dateTime = DateTime.of(2000,12, 31, 22, 30, 0, 0,null, 0); + assertThat(dateTime.toString()).isEqualTo("2000-12-31T22:30:00"); + } }