Java 8 DateTimeFormatter analyse pour les secondes fractionnelles facultatives d'importance variable

Mon MCVE (comme un TestNG de test de l'unité):

public class MyDateTimeFormatterTest {

    private static final String BASE_PATTERN = "yyyy/MM/dd HH:mm:ss";
    private static final DateTimeFormatter FORMATTER =
            DateTimeFormatter.ofPattern(BASE_PATTERN + "[.SSSSSSSSS]");
    private static final LocalDateTime TEST_INPUT =
            LocalDateTime.of(2015, 5, 4, 12, 34, 56, 123456789);

    @DataProvider(name = "test-cases")
    public Iterator<Object[]> getTestCases() {
        return Arrays.asList(testFor("", ChronoUnit.SECONDS),
                testFor(".SSS", ChronoUnit.MILLIS),
                testFor(".SSSSSS", ChronoUnit.MICROS),
                testFor(".SSSSSSSSS", ChronoUnit.NANOS)).iterator();
    }

    @Test(dataProvider = "test-cases")
    public void testWithDefaultResolution(String input, LocalDateTime output) {
        assertThat(FORMATTER.parse(input, LocalDateTime::from), equalTo(output));
    }

    private Object[] testFor(String patternSuffix, TemporalUnit truncatedTo) {
        return new Object[] { DateTimeFormatter.ofPattern(BASE_PATTERN + patternSuffix)
                .format(TEST_INPUT), TEST_INPUT.truncatedTo(truncatedTo) };
    }
}

Je suis en train de tester le traitement d'une date-heure String avec facultatif fractions de secondes une importance différente à l'aide de DateTimeFormatter. La partie pertinente de la Javadoc lit:

Fraction: les Sorties de la nano-de-second champ comme une fraction de seconde. Le nano-de-la deuxième valeur a neuf chiffres, donc le nombre de modèle de lettres est de 1 à 9. Si elle est inférieure à 9, puis à la nano-seconde valeur est tronquée, avec seulement les chiffres les plus significatifs en cours de sortie.

Basé sur ma compréhension limitée, j'ai utilisé [...] pour marquer les fractions de seconde en option, et depuis que je m'intéresse à divers importance, j'ai pensé que je devais m'en tenir à SSSSSSSSS.

Cependant, le test de l'unité ne parvient pas à l'analyse jusqu'à millisecondes et quelques microsecondes, c'est à dire le deuxième et le troisième cas. La modification de la ResolverStyle à CLÉMENT n'a pas d'aide ici, car elle ne tient pas à l'analyse de scène, pas la résolution.

Pourrais-je savoir qui se rapproche de ce que je dois envisager pour résoudre mon problème? Dois-je utiliser DateTimeFormatterBuilder également la possibilité de spécifier à chaque chiffre fractionnaire (9 fois), ou est-il plus "intelligemment" sorte avec mon modèle?

modifier j'ai trouvé ma réponse en fin de compte... va encore laisser cela comme sans réponse pendant une journée et voir si il y a d'autres approches ou pas.

source d'informationauteur h.j.k.