Je crée une application dans laquelle l'utilisateur choisit une date et une heure dans un calendrier qui doit ensuite être affiché dans un champ de texte à 26 chiffres, en complétant la date par des zéros de fin.Pad DateTimeFormatter avec des zéros de traling
Ainsi, la date doit être affichée dans le format suivant:
yyyyMMddHHmmssSSS000000000
Ainsi, après milliseconde (SSS) Je veux remplir la chaîne avec 9 zéros. Le problème est que cela ne semble pas possible sans ajouter un espace entre les lettres du motif et les constantes nulles.
La chose amusante est que si je fais DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS000000000")
je reçois un DateTimeParseException
, mais la chaîne est réellement formatée comme souhaité dans le champ de texte. Le problème est que lorsque j'entoure l'instanciation de DateTimeFormatter
avec un bloc try-catch, Eclipse me dit Unreachable catch block for DateTimeParseException. This exception is never thrown from the try statement body
car l'exception est renvoyée dans une classe de dépendance à mon champ de texte. De plus, il semble que ce soit une mauvaise pratique d'attraper une erreur qui sera lancée à chaque fois que le code est exécuté.
DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS 000000000")
compile. Mais j'ai vraiment besoin que ce soit une chaîne sans aucun espace.
Est-ce possible? J'utilise actuellement java.time.format.DateTimeFormatter
, mais s'il y a de la classe là-bas, j'imagine que l'utiliser serait bien aussi. Bien que je préférerais éviter d'ajouter des dépendances supplémentaires.
Eh bien, je viens de réaliser que quelque chose d'autre donnait moi l'exception. J'ai essayé 'DateTimeFormatter.ofPattern (" yyyyMMddHHmmssSSS'000000000 '")' mais puisque l'exception est restée j'ai rejeté cette tentative. Je vais juste marquer @ Ken Geis comme la bonne réponse. –