J'essaie d'utiliser la classe Duration
au lieu de long
. Il a une syntaxe littérale supérieure. J'aime sa flexibilité, même si elle a l'air bizarre.
"PT10S" signifie 10 secondes, quel est le problème pour accepter "10 secondes"?! OK, c'est pas grave.
Je suis simplement curieux de savoir pourquoi le préfixe PT a été choisi (pas "DU" par exemple) et pourquoi un préfixe est meilleur ici plutôt que rien?
Comme on peut le trouver sur la page Jesper liée à ( ISO-8601 - Éléments de données et formats d'échange - Échange d'informations - Représentation des dates et heures )
P is the duration designator (for period) placed at the start of the duration representation.
Y is the year designator that follows the value for the number of years.
M is the month designator that follows the value for the number of months.
W is the week designator that follows the value for the number of weeks.
D is the day designator that follows the value for the number of days.
T is the time designator that precedes the time components of the representation.
Donc PT signifie période de temps.
Le "pourquoi" cela a été choisi, vous devez demander aux membres de l'ISO qui ont écrit la norme, mais je suppose que c'est plus facile à analyser. (court et sans ambiguïté)
Java a pris un sous-ensemble du format standard ISO 8601 pour une durée. Donc, le "pourquoi" est la raison pour laquelle la norme a été écrite telle qu'elle est, et c'est un jeu de devinettes. Mon coup c'est:
P
pour la période a été choisi afin que vous puissiez distinguer une durée d'une date et/ou d'une heure. D'autant plus qu'une période peut également être écrite dans le même format qu'une date-heure locale, par exemple P0003-06-04T12:30:05
pendant 3 ans 6 mois 4 jours 12 heures 30 minutes 5 secondes, le P
peut être nécessaire pour distinguer. Le P
donne également un peu mais rapide et pratique de validation au cas où vous passeriez une chaîne complètement différente à un endroit où une durée était attendue. Et oui, PT10S
a l'air bizarre, mais une fois que vous vous y êtes habitué, vous le reconnaissez immédiatement comme une durée, ce qui peut être pratique.T
pour le temps entre la partie date et la partie temps a été choisi pour deux raisons: T
au même endroit, par exemple 2018-07-04T15:00
pour le 4 juillet 2018 à 15h00.M
par ailleurs ambigu pour des mois ou des minutes: P3M
signifie sans ambiguïté 3 mois tandis que PT3M
signifie 3 minutes.