La norme des dates : ISO 8601

iso.org : Les Normes internationales

Représentation numérique de la date et de l'heure avec la norme ISO 8601 traitant de la représentation des éléments suivants:

  • Date
  • Heure du jour
  • Temps Universel Coordonné (UTC)
  • Heure locale avec décalage horaire UTC
  • Date et heure
  • Intervalles de temps
  • Intervalles de temps périodiques

La représentation peut se présenter sous deux formes. Le format de base comporte un nombre de caractères minimal et le format étendu compte des caractères supplémentaires pour en faciliter la lisibilité pour un lecteur humain. Par exemple, le trois janvier 2010 peut être représenté par 20100103 ou par 2010-01-03.

La norme ISO 8601

Décalage et fuseaux horaire

Fuseau horaire

  • UTC Londres Royaume-Uni
  • UTC+1 Paris France (en heure d'hivers, sinon +2 en heure d'été)

Heure d'été en France

  • la période de l’heure d’été commence, à 1 heure du matin, UTC, le dernier dimanche de mars.
  • la période de l’heure d’été se termine, à 1 heure du matin, UTC, le dernier dimanche d’octobre.

Programmez ISO 8601

ISO 8601 en JAVA

ISO 8601 en PHP

La classe DateTime

Date et Heure complète
c	Date au format ISO 8601	2004-02-12T15:19:21+00:00
Jour
N	Représentation numérique ISO-8601 du jour de la semaine (ajouté en PHP 5.1.0)	1 (pour Lundi) à 7 (pour Dimanche)
Semaine
W	Numéro de semaine dans l'année ISO-8601, les semaines commencent le lundi (ajouté en PHP 4.1.0)	Exemple : 42 (la 42ème semaine de l'année)
Année
o	L'année ISO-8601. C'est la même valeur que Y, excepté que si le numéro de la semaine ISO (W) appartient à l'année précédente ou suivante, cette année sera utilisé à la place. Exemples : 1999 ou 2003
DateTime::ISO8601 
DATE_ISO8601
ISO-8601 (exemple : 2010-08-15T15:52:01+0000)
  • strtotime Transforme un texte anglais en timestamp
$iso_date = date('c',strtotime($selected_timestamp));

ISO 8601 en C# (csharp)

DateTime lastTime = DateTime.Now;
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
DateTime.Now.ToString("s"); // basé sur ISO 8601 ; yyyy'-'MM'-'dd'T'HH':'mm':'ss
 
      // Creates and initializes a DateTimeFormatInfo associated with the en-US culture.
      DateTimeFormatInfo myDTFI = new CultureInfo( "en-US", false ).DateTimeFormat;
 
      // Creates a DateTime with the Gregorian date January 3, 2010 (year=2010, month=1, day=3).
      // The Gregorian calendar is the default calendar for the en-US culture.
      DateTime myDT = new DateTime( 2010, 1, 3 );
 
      // Displays the format pattern associated with each format character.
      Console.WriteLine( "  s     {0}", myDT.ToString("s", myDTFI) );
      Console.WriteLine( "        {0} {1}\n", myDTFI.SortableDateTimePattern, "(SortableDateTimePattern)" );
 
// FORMAT  en-US EXAMPLE
// CHAR    VALUE OF ASSOCIATED PROPERTY, IF ANY
//
//  s     2010-01-03T00:00:00
//        yyyy'-'MM'-'dd'T'HH':'mm':'ss (SortableDateTimePattern)
s SortableDateTimePattern (basé sur ISO 8601) en utilisant l'heure locale ; avec ce modèle de format, l'opération de mise en forme ou d'analyse utilise toujours la culture indifférente

ISO 8601 en MySQL

SELECT DATE_FORMAT(CURRENT_TIMESTAMP,'%Y-%m-%dT%TZ')

GET_FORMAT(TIME,'ISO') Le format ISO est le format ISO 9075, et non ISO 8601.