Question

Comment représenter les heures de début et de fin d'un jour?

En prenant comme exemple le 23 octobre 2008, est-ce que cela commence début 2008-10-23 12:00:00 am fin 2008-10-23 23:59:59?

Était-ce utile?

La solution

Votre notation est étrange. Je suggèrerais que le moyen standard de spécifier une plage de journées complètes est:

2008-10-23 00:00:00 et fin 2008-10-23 23:59:59

Autres conseils

J'aimerais citer un site, http: // www .cl.cam.ac.uk / ~ mgk25 / iso-time.html

La notation standard internationale pour l'heure du jour est

hh:mm:ss

où hh est le nombre d'heures complètes écoulées depuis minuit (00-24), mm le nombre de minutes complètes écoulées depuis le début de l'heure (00-59) et ss le nombre de secondes complètes depuis le début de la minute (00-60). Si la valeur de l'heure est 24, les minutes et les secondes doivent être égales à zéro.

Remarque: la valeur 60 pour ss peut parfois être nécessaire pendant une seconde intercalaire insérée dans une échelle de temps atomique telle que le temps universel coordonné (UTC). Une seule seconde, 23:59:60 est insérée dans l’échelle de temps UTC toutes les quelques années, comme annoncé par le Service international de la rotation de la Terre à Paris, afin d’empêcher UTC de s’écarter plus de 0,9 s de l’échelle de temps astronomique moins constante UT1, qui est défini par la rotation réelle de la terre. En pratique, vous ne verrez probablement pas une horloge indiquant 23:59:60. La plupart des horloges synchronisées se resynchronisent à l'heure UTC un certain temps après une seconde intercalaire ou ralentissent temporairement vers ce décalage, afin d'éviter toute perturbation qu'un horodatage hors plage pourrait provoquer autrement.

Un exemple de temps est

23:59:59

qui représente l'heure une seconde avant minuit.

Comme pour la notation de la date, les deux points séparateurs peuvent également être omis, comme dans

235959

et la précision peut être réduite en omettant les secondes ou les secondes et les minutes comme dans

23:59, 2359, or 23

Il est également possible d’ajouter des fractions de seconde après un point ou une virgule décimale. Par exemple, il est possible d’écrire le temps 5,8 ms avant minuit sous la forme

.
23:59:59.9942 or 235959.9942

Comme chaque jour commence et se termine à minuit, les deux notations 00:00 et 24:00 permettent de distinguer les deux minuit pouvant être associés à une date. Cela signifie que les deux notations suivantes se réfèrent exactement au même moment:

1995-02-04 24:00 = 1995-02-05 00:00

Dans le cas où une représentation non ambiguë du temps est requise, 00:00 est généralement la notation préférée pour minuit et non 24h00. Les horloges numériques affichent 00:00 et non 24:00.

ISO 8601 ne spécifie pas si ses notations spécifient un point dans le temps ou une période. Cela signifie par exemple que la norme ISO 8601 ne définit pas si 09:00 fait référence à la fin exacte de la neuvième heure du jour ou à la période de 09:00 à 09:01 ou à une autre période. Les utilisateurs de la norme doivent, d’une manière ou d’une autre, se mettre d’accord sur l’interprétation exacte de l’indication de l’heure, si cela pose un problème.

Si une date et une heure sont affichées sur la même ligne, écrivez toujours la date devant l'heure. Si une date et une heure sont stockées ensemble dans un seul champ de données, ISO 8601 suggère de les séparer par une lettre majuscule latine T, comme dans 19951231T235959.

Une remarque pour les lecteurs des États-Unis:

La notation de temps 24h spécifiée ici est déjà la norme de facto dans le monde entier en langue écrite depuis des décennies. La seule exception à la règle concerne quelques pays anglophones, où des notations avec des heures comprises entre 1 et 12 et des ajouts tels que & # 8220; a.m. & # 8221; et & # 8220; p.m. & # 8221; sont largement utilisés. La notation standard commune internationale 24h est déjà largement utilisée, même en Angleterre (par exemple, dans les aéroports, les cinémas, les horaires de bus / train, etc.). La plupart des autres langues n’ont même pas d’abréviations telles que "a.m. & # 8221". et & # 8220; p.m. & # 8221; et la notation 12h n'est certainement guère utilisée en Europe continentale pour écrire ou afficher une heure. Même aux États-Unis, l’armée et les informaticiens utilisent la notation 24h depuis très longtemps.

L'ancienne notation anglaise en 12h présente de nombreux inconvénients, tels que:

  • Il est plus long que la notation normale normale.
  • Il faut un peu plus de temps aux humains pour comparer deux fois la notation 12h.
  • Nous ne savons pas comment 00:00, 12:00 et 24:00 sont représentés. Même les encyclopédies et les manuels de style contiennent des descriptions contradictoires et une solution rapide semble être d'éviter & # 8220; 12:00 pm / pm.m ” et écrivez ensemble: & # 8220; midi & # 8221 ;, & # 8220; minuit & # 8221 ;, ou & # 8220; 12 h 01; pm / p.m.” Au lieu de cela, le mot & # 8220; minuit & # 8221; ne fait toujours pas la distinction entre 00:00 et 24:00 (minuit au début ou à la fin d’un jour donné).
  • Cela fait souvent croire aux gens que le lendemain débute à partir du & # 8220; 12h59 & # 8221; à & # 8220; 1:00 am & # 8221 ;, ce qui est un problème courant, pas seulement lorsque les utilisateurs essaient de programmer le magnétoscope peu après minuit.
  • Ce n'est pas facilement comparable avec une opération de comparaison de chaînes.
  • Il n’est pas évident pour l’ignorant si le délai entre & # 8220; 12h00 a.m./p.m.” et & # 8220; 1 h 00./p.m.” commence à 00h00 ou à 12h00, c’est-à-dire que la notation anglaise à 12h est plus difficile à comprendre.

Considérez l’heure de 12 heures comme une relique des âges sombres lorsque des chiffres romains étaient utilisés, le nombre zéro n’avait pas encore été inventé et les horloges analogiques étaient la seule forme connue d’affichage d’une heure. S'il vous plaît éviter de l'utiliser aujourd'hui, en particulier dans les applications techniques! Même aux États-Unis, le très réputé Chicago Manual of Style recommande désormais d’utiliser la notation internationale standard dans les publications.

Certes, si vous voulez seulement représenter une journée, vous n'avez pas besoin d'inclure l'heure du tout, d'autant plus que cela soulève un tel niveau de discussion sur le début ou la fin d'une journée. D'après mon expérience, le traitement des dates est généralement assez compliqué, sans introduire de complexité supplémentaire.

Nous sommes le 20 octobre 2008 - aucune autre information n'est nécessaire.

Ou est-ce que je manque quelque chose?

oct. 23 commence le 2008-10-23 12:00 et se termine le 2008-10-24 12:00 — une journée se termine exactement au même endroit que le jour suivant. La toute dernière seconde commence à 23h59:59, mais vous avez encore une seconde avant la fin de la journée.

La définition du jour que vous mentionnez dans la question concerne les heures > = 2008-10-23 00:00:00 et < 2008-10-24 00:00:00.

Si vous utilisiez la notation mathématique par intervalles, vous l'écririez ainsi:

  

[2008-10-23 00:00:00, 2008-10-24 00:00:00)

[ signifie "inclusion" et ) signifie "jusqu'à" mais sans l'inclure.

De cette manière, vous simplifiez la tâche des utilisateurs et de vous-même.

Cela dépend de ce que vous entendez par jour. Le traitement des dates est malheureusement toujours plus complexe qu'il n'y paraît.

Pour convertir votre exemple au format de date ISO 24h, vous devez dire:

2008-10-23 00:00:00 - 2008-10-23 23:59:59

Toutefois, selon que vous interprétez une plage comme inclusive ou exclusive qui pourrait omettre la dernière seconde du jour *. Les programmeurs préfèrent normalement garder la limite supérieure exclusive, vous devriez donc aller pour:

2008-10-23 00:00:00 - 2008-10-24 00:00:00

Ou, si vous le souhaitez (ou pour la lisibilité humaine), utilisez un moyen légèrement plus agréable de le dire:

2008-10-23 00:00:00 - 2008-10-23 24:00:00

*: peut-être même plus d'un. Si la période représente une journée dans le fuseau horaire UTC (ou un autre fuseau horaire aligné, ce qui est fort probable), il peut parfois y avoir une «seconde intercalaire» supplémentaire à la fin de la journée, 23:59:60, dans un but inutile. essayer de maintenir UTC en conformité avec le temps sidéral. Le second saut est prévu pour la fin de cette année. Cependant, de nombreux systèmes ignorent les secondes intercalaires car ils sont stupides et ennuyeux.

Si vous souhaitez représenter un "jour calendaire" indépendamment des fuseaux horaires, le meilleur choix est le nombre de jours du calendrier Julien. Nous sommes le 2454760 aujourd’hui.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top