Vous êtes sur la page 1sur 32

Chanes de format de date et d'heure personnalises

Une chane de format de date et d'heure dfinit la reprsentation textuelle d'une


valeur DateTime ou DateTimeOffset qui rsulte d'une opration de mise en forme. Elle peut
galement dfinir la reprsentation d'une valeur de date et d'heure qui est requise dans une
opration d'analyse afin de convertir correctement la chane sous forme de date et d'heure.
Une chane de format personnalise se compose d'un ou de plusieurs spcificateurs de format
de date et d'heure personnaliss. Toute chane autre qu'une chane de format de date et
d'heure standard est interprte comme chane de format de date et d'heure personnalise.

Les chanes de format de date et d'heure personnalises peuvent tre utilises avec les
valeurs DateTime et DateTimeOffset.
Astuce

Vous pouvez tlcharger lutilitaire de mise en forme, une application qui vous permet
dappliquer des chanes de format des valeurs numriques ou des valeurs de date et
dheure, et dafficher la chane de rsultat.
Dans les oprations de mise en forme, les chanes de format de date et d'heure personnalises
peuvent tre utilises avec la mthode ToString d'une instance de date et d'heure ou avec une
mthode qui prend en charge la mise en forme composite. L'exemple suivant illustre ces deux
types d'utilisation.

DateTime thisDate1 = new DateTime(2011, 6, 10);


Console.WriteLine("Today is " + thisDate1.ToString("MMMM dd, yyyy") + ".");

DateTimeOffset thisDate2 = new DateTimeOffset(2011, 6, 10, 15, 24, 16,


TimeSpan.Zero);
Console.WriteLine("The current date and time: {0:MM/dd/yy H:mm:ss zzz}",
thisDate2);
// The example displays the following output:
// Today is June 10, 2011.
// The current date and time: 06/10/11 15:24:16 +00:00

Dans les oprations d'analyse, les chanes de format de date et d'heure personnalises peuvent
tre utilises avec les
mthodes DateTime.ParseExact, DateTime.TryParseExact, DateTimeOffset.ParseExact et DateTi
meOffset.TryParseExact. Pour que l'opration d'analyse aboutisse, ces mthodes requirent
qu'une chane d'entre se conforme exactement un modle particulier. L'exemple suivant
illustre un appel la mthode DateTimeOffset.ParseExact(String, String,
IFormatProvider) pour analyser une date qui doit comprendre un jour, un mois et une anne
sur deux chiffres.

using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string[] dateValues = { "30-12-2011", "12-30-2011",
"30-12-11", "12-30-11" };
string pattern = "MM-dd-yy";
DateTime parsedDate;

foreach (var dateValue in dateValues) {


if (DateTime.TryParseExact(dateValue, pattern, null,
DateTimeStyles.None, out parsedDate))
Console.WriteLine("Converted '{0}' to {1:d}.",
dateValue, parsedDate);
else
Console.WriteLine("Unable to convert '{0}' to a date and time.",
dateValue);
}
}
}
// The example displays the following output:
// Unable to convert '30-12-2011' to a date and time.
// Unable to convert '12-30-2011' to a date and time.
// Unable to convert '30-12-11' to a date and time.
// Converted '12-30-11' to 12/30/2011.

Le tableau suivant dcrit les spcificateurs de format de date et d'heure personnaliss et affiche
une chane de rsultat produite par chaque spcificateur de format. Par dfaut, les chanes de
rsultat refltent les conventions de mise en forme de la culture en-US. Si un spcificateur de
format particulier produit une chane de rsultat localise, l'exemple indique galement la
culture laquelle la chane de rsultat s'applique. Pour plus d'informations sur l'utilisation de
chanes de format de date et d'heure personnalises, consultez la section Remarques.
Spcificateur
Description Exemples
de format

"d" Jour du mois, de 1 31. 2009-06-01T13:45:30 -> 1


2009-06-15T13:45:30 -> 15

"dd" Jour du mois, de 01 31. 2009-06-01T13:45:30 -> 01


2009-06-15T13:45:30 -> 15

"ddd" Nom abrg du jour de la semaine. 2009-06-15T13:45:30 -> Mon (en-US)


2009-06-15T13:45:30 -> (ru-RU)
2009-06-15T13:45:30 -> lun. (fr-FR)
Spcificateur
Description Exemples
de format

"dddd" Nom complet du jour de la 2009-06-15T13:45:30 -> Monday (en-US)


semaine. 2009-06-15T13:45:30 -> (ru-RU)
2009-06-15T13:45:30 -> lundi (fr-FR)

"f" Diximes de seconde dans une 2009-06-15T13:45:30.6170000 -> 6


valeur de date et d'heure. 2009-06-15T13:45:30.05 -> 0

"ff" Centimes de seconde dans une 2009-06-15T13:45:30.6170000 -> 61


valeur de date et d'heure. 2009-06-15T13:45:30.0050000 -> 00

"fff" Millisecondes dans une valeur de 6/15/2009 13:45:30.617 -> 617


date et d'heure. 6/15/2009 13:45:30.0005 -> 000

"ffff" Dix millimes de seconde dans une 2009-06-15T13:45:30.6175000 -> 6175


valeur de date et d'heure. 2009-06-15T13:45:30.0000500 -> 0000

"fffff" Cent millimes de seconde dans 2009-06-15T13:45:30.6175400 -> 61754


une valeur de date et d'heure. 6/15/2009 13:45:30.000005 -> 00000

"ffffff" Millionimes de seconde dans une 2009-06-15T13:45:30.6175420 -> 617542


valeur de date et d'heure. 2009-06-15T13:45:30.0000005 -> 000000

"fffffff" Dix millionimes de seconde dans 2009-06-15T13:45:30.6175425 -> 6175425


une valeur de date et d'heure. 2009-06-15T13:45:30.0001150 -> 0001150

"F" Si la valeur est diffrente de zro, 2009-06-15T13:45:30.6170000 -> 6


elle reprsente les diximes de 2009-06-15T13:45:30.0500000 -> (pas de
seconde dans une valeur de date et sortie)
d'heure.

"FF" Si la valeur est diffrente de zro, 2009-06-15T13:45:30.6170000 -> 61


elle reprsente les centimes de 2009-06-15T13:45:30.0050000 -> (pas de
seconde dans une valeur de date et sortie)
d'heure.

"FFF" Si la valeur est diffrente de zro, 2009-06-15T13:45:30.6170000 -> 617


elle reprsente les millisecondes 2009-06-15T13:45:30.0005000 -> (pas de
dans une valeur de date et d'heure. sortie)
Spcificateur
Description Exemples
de format

"FFFF" Si la valeur est diffrente de zro, 2009-06-15T13:45:30.5275000 -> 5275


elle reprsente les dix millimes de 2009-06-15T13:45:30.0000500 -> (pas de
seconde dans une valeur de date et sortie)
d'heure.

"FFFFF" Si la valeur est diffrente de zro, 2009-06-15T13:45:30.6175400 -> 61754


elle reprsente les cent millimes 2009-06-15T13:45:30.0000050 -> (pas de
de seconde dans une valeur de date sortie)
et d'heure.

"FFFFFF" Si la valeur est diffrente de zro, 2009-06-15T13:45:30.6175420 -> 617542


elle reprsente les millionimes de 2009-06-15T13:45:30.0000005 -> (pas de
seconde dans une valeur de date et sortie)
d'heure.

"FFFFFFF" Si la valeur est diffrente de zro, 2009-06-15T13:45:30.6175425 -> 6175425


elle reprsente les dix millionimes 2009-06-15T13:45:30.0001150 -> 000115
de seconde dans une valeur de date
et d'heure.

"g", "gg" Priode ou re. 2009-06-15T13:45:30.6170000 -> A.D.

"h" Heure, au format de 12 heures, de 1 2009-06-15T01:45:30 -> 1


12. 2009-06-15T13:45:30 -> 1

"hh" Heure, au format de 12 heures, de 2009-06-15T01:45:30 -> 01


01 12. 2009-06-15T13:45:30 -> 01

"H" Heure, au format de 24 heures, de 0 2009-06-15T01:45:30 -> 1


23. 2009-06-15T13:45:30 -> 13

"HH" Heure, au format de 24 heures, de 2009-06-15T01:45:30 -> 01


00 23. 2009-06-15T13:45:30 -> 13
Spcificateur
Description Exemples
de format

"K" Informations de fuseau horaire. Avec les valeurs DateTime :

2009-06-15T13:45:30, Kind Unspecified ->


2009-06-15T13:45:30, Kind Utc -> Z

2009-06-15T13:45:30, Kind Local -> -07:00


(dpend des paramtres de l'ordinateur local)

Avec les valeurs DateTimeOffset :

2009-06-15T01:45:30-07:00 --> -07:00


2009-06-15T08:45:30+00:00 --> +00:00

"m" Minute, dfinie entre 0 et 59. 2009-06-15T01:09:30 -> 9


2009-06-15T13:29:30 -> 29

"mm" Minute, dfinie entre 00 et 59. 2009-06-15T01:09:30 -> 09


2009-06-15T01:45:30 -> 45

"M" Mois, de 1 12. 2009-06-15T13:45:30 -> 6

"MM" Mois, de 01 12. 2009-06-15T13:45:30 -> 06

"MMM" Nom abrg du mois. 2009-06-15T13:45:30 -> Jun (en-US)


2009-06-15T13:45:30 -> juin (fr-FR)
2009-06-15T13:45:30 -> Jun (zu-ZA)

"MMMM" Nom complet du mois. 2009-06-15T13:45:30 -> June (en-US)


2009-06-15T13:45:30 -> juni (da-DK)
2009-06-15T13:45:30 -> uJuni (zu-ZA)

"s" Seconde, de 0 59. 2009-06-15T13:45:09 -> 9

"ss" Seconde, de 00 59. 2009-06-15T13:45:09 -> 09

"t" Premier caractre de l'indicateur 2009-06-15T13:45:30 -> P (en-US)


AM/PM. 2009-06-15T13:45:30 -> (ja-JP)
2009-06-15T13:45:30 -> (fr-FR)

"tt" Indicateur AM/PM. 2009-06-15T13:45:30 -> PM (en-US)


2009-06-15T13:45:30 -> (ja-JP)
2009-06-15T13:45:30 -> (fr-FR)
Spcificateur
Description Exemples
de format

"y" Anne, de 0 99. 0001-01-01T00:00:00 -> 1


0900-01-01T00:00:00 -> 0
1900-01-01T00:00:00 -> 0
2009-06-15T13:45:30 -> 9
2019-06-15T13:45:30 -> 19

"yy" Anne, de 00 99. 0001-01-01T00:00:00 -> 01


0900-01-01T00:00:00 -> 00
1900-01-01T00:00:00 -> 00
2019-06-15T13:45:30 -> 19

"yyy" Anne, avec au minimum trois 0001-01-01T00:00:00 -> 001


chiffres. 0900-01-01T00:00:00 -> 900
1900-01-01T00:00:00 -> 1900
2009-06-15T13:45:30 -> 2009

"yyyy" Anne, en tant que nombre 0001-01-01T00:00:00 -> 0001


quatre chiffres. 0900-01-01T00:00:00 -> 0900
1900-01-01T00:00:00 -> 1900
2009-06-15T13:45:30 -> 2009

"yyyyy" Anne, en tant que nombre cinq 0001-01-01T00:00:00 -> 00001


chiffres. 2009-06-15T13:45:30 -> 02009

"z" Dcalage horaire par rapport 2009-06-15T13:45:30-07:00 -> -7


l'heure UTC, sans zro non
significatif.

"zz" Dcalage horaire par rapport 2009-06-15T13:45:30-07:00 -> -07


l'heure UTC, avec un zro non
significatif pour une valeur un seul
chiffre.

"zzz" Dcalage horaire par rapport 2009-06-15T13:45:30-07:00 -> -07:00


l'heure UTC, en heures et minutes.

":" Sparateur horaire. 2009-06-15T13:45:30 -> : (en-US)


2009-06-15T13:45:30 -> . (it-IT)
2009-06-15T13:45:30 -> : (ja-JP)
Spcificateur
Description Exemples
de format

"/" Sparateur de date. 2009-06-15T13:45:30 -> / (en-US)


2009-06-15T13:45:30 -> - (ar-DZ)
2009-06-15T13:45:30 -> . (tr-TR)

"chane" Dlimiteur de chane littrale. 2009-06-15T13:45:30 ("arr:" h:m t) -> arr:


1:45 P
'chane' 2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45
P

% Dfinit le caractre suivant comme 2009-06-15T13:45:30 (%h) -> 1


spcificateur de format
personnalis.

\ Caractre d'chappement. 2009-06-15T13:45:30 (h \h) -> 1 h

N'importe Le caractre est copi inchang 2009-06-15T01:45:30 (arr hh:mm t) -> arr
quel autre dans la chane de rsultat. 01:45 A
caractre

Les sections suivantes fournissent des informations supplmentaires sur chaque spcificateur
de format de date et d'heure personnalis. Sauf indication contraire, chaque spcificateur
produit une reprsentation sous forme de chane identique, qu'il soit utilis avec une
valeur DateTime ou une valeur DateTimeOffset.

Spcificateur de format personnalis "d"


Le spcificateur de format personnalis "d" reprsente le jour du mois sous la forme d'un
nombre compris entre 1 et 31. Un jour un seul chiffre est mis en forme sans zro non
significatif.
Si le spcificateur de format "d" est utilis sans autre spcificateur de format personnalis, il est
interprt comme le spcificateur de format de date et d'heure standard "d". Pour plus
d'informations sur l'utilisation d'un spcificateur de format unique, consultez Utilisation de
spcificateurs de format personnaliss uniques, plus loin dans cette rubrique.
L'exemple suivant inclut le spcificateur de format personnalis "d" dans plusieurs chanes de
format.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("d, M",
CultureInfo.InvariantCulture));
// Displays 29, 8
Console.WriteLine(date1.ToString("d MMMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays 29 August
Console.WriteLine(date1.ToString("d MMMM",
CultureInfo.CreateSpecificCulture("es-MX")));
// Displays 29 agosto

Spcificateur de format personnalis "dd"


Le spcificateur de format personnalis "dd" reprsente le jour du mois sous la forme d'un
nombre compris entre 01 et 31. Un jour un seul chiffre est mis en forme avec un zro non
significatif.
L'exemple suivant inclut le spcificateur de format personnalis "dd" dans une chane de
format personnalise.

DateTime date1 = new DateTime(2008, 1, 2, 6, 30, 15);

Console.WriteLine(date1.ToString("dd, MM",
CultureInfo.InvariantCulture));
// 02, 01

Spcificateur de format personnalis "ddd"


Le spcificateur de format personnalis "ddd" reprsente le nom abrg du jour de la semaine.
Le nom abrg localis du jour de la semaine est rcupr de la
proprit DateTimeFormatInfo.AbbreviatedDayNames de la culture actuelle ou spcifie.
L'exemple suivant inclut le spcificateur de format personnalis "ddd" dans une chane de
format personnalise.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("ddd d MMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays ven. 29 aot

Retour au tableau
Spcificateur de format personnalis "dddd"
Le spcificateur de format personnalis "dddd" (plus n'importe quel nombre de spcificateurs
"d" supplmentaires) reprsente le nom complet du jour de la semaine. Le nom localis du jour
de la semaine est rcupr de la proprit DateTimeFormatInfo.DayNames de la culture
actuelle ou spcifie.
L'exemple suivant inclut le spcificateur de format personnalis "dddd" dans une chane de
format personnalise.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("dddd dd MMMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM",
CultureInfo.CreateSpecificCulture("it-IT")));
// Displays venerd 29 agosto

Spcificateur de format personnalis "f"


Le spcificateur de format personnalis "f" reprsente le chiffre le plus significatif de la fraction
de seconde ; autrement dit, il reprsente les diximes de seconde dans une valeur de date et
d'heure.
Si le spcificateur de format "f" est utilis sans autre spcificateur de format, il est interprt
comme le spcificateur de format de date et d'heure standard "f". Pour plus d'informations sur
l'utilisation d'un spcificateur de format unique, consultez Utilisation de spcificateurs de
format personnaliss uniques, plus loin dans cette rubrique.
Lorsque vous utilisez "f" dans le cadre d'une chane de format fournie la
mthode ParseExact, TryParseExact, ParseExact ou TryParseExact, le nombre de spcificateurs
de format "f" utiliss indique le nombre des chiffres les plus significatifs de la fraction de
seconde requis pour analyser correctement la chane.
L'exemple suivant inclut le spcificateur de format personnalis "f" dans une chane de format
personnalise.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);


CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Spcificateur de format personnalis "ff"
Le spcificateur de format personnalis "ff" reprsente les deux chiffres les plus significatifs de
la fraction de seconde ; autrement dit, il reprsente les centimes de seconde dans une valeur
de date et d'heure.
L'exemple suivant inclut le spcificateur de format personnalis "ff" dans une chane de format
personnalise.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);


CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

Spcificateur de format personnalis "fff"


Le spcificateur de format personnalis "fff" reprsente les trois chiffres les plus significatifs de
la fraction de seconde ; autrement dit, il reprsente les millisecondes dans une valeur de date
et d'heure.

L'exemple suivant inclut le spcificateur de format personnalis "fff" dans une chane de format
personnalise.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);


CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

Spcificateur de format personnalis "ffff"


Le spcificateur de format personnalis "ffff" reprsente les quatre chiffres les plus significatifs
de la fraction de seconde ; autrement dit, il reprsente les dix millimes de seconde dans une
valeur de date et d'heure.

Bien qu'il soit possible d'afficher les dix millimes du composant "secondes" d'une valeur
d'heure, cette valeur peut ne pas tre significative. La prcision des valeurs de date et d'heure
dpend de la rsolution de l'horloge systme. Sur les systmes d'exploitation Windows NT
version 3.5 (et ultrieures) et Windows Vista, la rsolution de l'horloge est d'environ 10-15
millisecondes.

Spcificateur de format personnalis "fffff"


Le spcificateur de format personnalis "fffff" reprsente les cinq chiffres les plus significatifs
de la fraction de seconde ; autrement dit, il reprsente les cent millimes de seconde dans une
valeur de date et d'heure.
Bien qu'il soit possible d'afficher les cent millimes du composant "secondes" d'une valeur
d'heure, cette valeur peut ne pas tre significative. La prcision des valeurs de date et d'heure
dpend de la rsolution de l'horloge systme. Sur les systmes d'exploitation Windows NT 3.5
(et versions ultrieures) et Windows Vista, la rsolution de l'horloge est d'environ 10-15
millisecondes.

Spcificateur de format personnalis "ffffff"


Le spcificateur de format personnalis "ffffff" reprsente les six chiffres les plus significatifs de
la fraction de seconde ; autrement dit, il reprsente les millionimes de seconde dans une
valeur de date et d'heure.
Bien qu'il soit possible d'afficher les millionimes du composant "secondes" d'une valeur
d'heure, cette valeur peut ne pas tre significative. La prcision des valeurs de date et d'heure
dpend de la rsolution de l'horloge systme. Sur les systmes d'exploitation Windows NT 3.5
(et versions ultrieures) et Windows Vista, la rsolution de l'horloge est d'environ 10-15
millisecondes.

Spcificateur de format personnalis "fffffff"


Le spcificateur de format personnalis "fffffff" reprsente les sept chiffres les plus significatifs
de la fraction de seconde ; autrement dit, il reprsente les dix millionimes de seconde dans
une valeur de date et d'heure.
Bien qu'il soit possible d'afficher les dix millionimes du composant "secondes" d'une valeur
d'heure, cette valeur peut ne pas tre significative. La prcision des valeurs de date et d'heure
dpend de la rsolution de l'horloge systme. Sur les systmes d'exploitation Windows NT 3.5
(et versions ultrieures) et Windows Vista, la rsolution de l'horloge est d'environ 10-15
millisecondes.

Spcificateur de format personnalis "F"


Le spcificateur de format personnalis "F" reprsente le chiffre le plus significatif de la fraction
de seconde ; autrement dit, il reprsente les diximes de seconde dans une valeur de date et
d'heure. Rien ne s'affiche si le chiffre est zro.
Si le spcificateur de format "F" est utilis sans autre spcificateur de format, il est interprt
comme le spcificateur de format de date et d'heure standard "F". Pour plus d'informations sur
l'utilisation d'un spcificateur de format unique, consultez Utilisation de spcificateurs de
format personnaliss uniques, plus loin dans cette rubrique.

Le nombre de spcificateurs de format "F" utiliss avec la mthode ParseExact, TryParseExact,


ParseExact ou TryParseExact indique le nombre maximum possible des chiffres les plus
significatifs de la fraction de seconde pour analyser correctement la chane.

L'exemple suivant inclut le spcificateur de format personnalis "F" dans une chane de format
personnalise.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);


CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

Spcificateur de format personnalis "FF"


Le spcificateur de format personnalis "FF" reprsente les deux chiffres les plus significatifs de
la fraction de seconde ; autrement dit, il reprsente les centimes de seconde dans une valeur
de date et d'heure. Toutefois, les zros de fin ou deux chiffres zro ne sont pas affichs.
L'exemple suivant inclut le spcificateur de format personnalis "FF" dans une chane de format
personnalise.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);


CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

Spcificateur de format personnalis "FFF"


Le spcificateur de format personnalis "FFF" reprsente les trois chiffres les plus significatifs
de la fraction de seconde ; autrement dit, il reprsente les millisecondes dans une valeur de
date et d'heure. Toutefois, les zros de fin ou trois chiffres zro ne sont pas affichs.
L'exemple suivant inclut le spcificateur de format personnalis "FFF" dans une chane de
format personnalise.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);


CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018

Spcificateur de format personnalis "FFFF"


Le spcificateur de format personnalis "FFFF" reprsente les quatre chiffres les plus
significatifs de la fraction de seconde ; autrement dit, il reprsente les dix millimes de seconde
dans une valeur de date et d'heure. Toutefois, les zros de fin ou quatre chiffres zro ne sont
pas affichs.
Bien qu'il soit possible d'afficher les dix millimes du composant "secondes" d'une valeur
d'heure, cette valeur peut ne pas tre significative. La prcision des valeurs de date et d'heure
dpend de la rsolution de l'horloge systme. Sur les systmes d'exploitation Windows NT 3.5
(et versions ultrieures) et Windows Vista, la rsolution de l'horloge est d'environ 10-15
millisecondes.

Spcificateur de format personnalis "FFFFF"


Le spcificateur de format personnalis "FFFFF" reprsente les cinq chiffres les plus significatifs
de la fraction de seconde ; autrement dit, il reprsente les cent millimes de seconde dans une
valeur de date et d'heure. Toutefois, les zros de fin ou cinq chiffres zro ne sont pas affichs.
Bien qu'il soit possible d'afficher les cent millimes du composant "secondes" d'une valeur
d'heure, cette valeur peut ne pas tre significative. La prcision des valeurs de date et d'heure
dpend de la rsolution de l'horloge systme. Sur les systmes d'exploitation Windows NT 3.5
(et versions ultrieures) et Windows Vista, la rsolution de l'horloge est d'environ 10-15
millisecondes.

Spcificateur de format personnalis "FFFFFF"


Le spcificateur de format personnalis "FFFFFF" reprsente les six chiffres les plus significatifs
de la fraction de seconde ; autrement dit, il reprsente les millionimes de seconde dans une
valeur de date et d'heure. Toutefois, les zros de fin ou six chiffres zro ne sont pas affichs.
Bien qu'il soit possible d'afficher les millionimes du composant "secondes" d'une valeur
d'heure, cette valeur peut ne pas tre significative. La prcision des valeurs de date et d'heure
dpend de la rsolution de l'horloge systme. Sur les systmes d'exploitation Windows NT 3.5
(et versions ultrieures) et Windows Vista, la rsolution de l'horloge est d'environ 10-15
millisecondes.

Spcificateur de format personnalis "FFFFFFF"


Le spcificateur de format personnalis "FFFFFFF" reprsente les sept chiffres les plus
significatifs de la fraction de seconde ; autrement dit, il reprsente les dix millionimes de
seconde dans une valeur de date et d'heure. Toutefois, les zros de fin ou sept chiffres zro ne
sont pas affichs.
Bien qu'il soit possible d'afficher les dix millionimes du composant "secondes" d'une valeur
d'heure, cette valeur peut ne pas tre significative. La prcision des valeurs de date et d'heure
dpend de la rsolution de l'horloge systme. Sur les systmes d'exploitation Windows NT 3.5
(et versions ultrieures) et Windows Vista, la rsolution de l'horloge est d'environ 10-15
millisecondes.

Spcificateur de format personnalis "g" ou "gg"


Les spcificateurs de format personnaliss "g" ou "gg" (plus n'importe quel nombre de
spcificateurs "g" supplmentaires) reprsentent la priode ou l're, par exemple aprs J.-C.
L'opration de mise en forme ignore ce spcificateur si la date mettre en forme n'est associe
aucune chane de priode ou d're.
Si le spcificateur de format "g" est utilis sans autre spcificateur de format personnalis, il est
interprt comme le spcificateur de format de date et d'heure standard "g". Pour plus
d'informations sur l'utilisation d'un spcificateur de format unique, consultez Utilisation de
spcificateurs de format personnaliss uniques, plus loin dans cette rubrique.
L'exemple suivant inclut le spcificateur de format personnalis "g" dans une chane de format
personnalise.

DateTime date1 = new DateTime(70, 08, 04);

Console.WriteLine(date1.ToString("MM/dd/yyyy g",
CultureInfo.InvariantCulture));
// Displays 08/04/0070 A.D.
Console.WriteLine(date1.ToString("MM/dd/yyyy g",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 08/04/0070 ap. J.-C.

Spcificateur de format personnalis "h"


Le spcificateur de format personnalis "h" reprsente l'heure sous la forme d'un nombre
compris entre 1 et 12 ; autrement dit, l'heure est reprsente au format de 12 heures qui
compte les heures entires depuis minuit ou midi. Une heure aprs minuit se prsente de la
mme manire que la mme heure aprs midi. L'heure n'est pas arrondie et une heure un
seul chiffre est mise en forme sans zro non significatif. Par exemple, si on considre l'heure
5:43 du matin ou de l'aprs-midi, ce spcificateur de format personnalis affiche "5".
Si le spcificateur de format "h" est utilis sans autre spcificateur de format personnalis, il est
interprt comme un spcificateur de format de date et d'heure standard et lve
un FormatException. Pour plus d'informations sur l'utilisation d'un spcificateur de format
unique, consultez Utilisation de spcificateurs de format personnaliss uniques, plus loin dans
cette rubrique.
L'exemple suivant inclut le spcificateur de format personnalis "h" dans une chane de format
personnalise.

DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5

Spcificateur de format personnalis "hh"


Le spcificateur de format personnalis "hh" (plus n'importe quel nombre de spcificateurs "h"
supplmentaires) reprsente l'heure sous la forme d'un nombre compris entre 01 et 12 ;
autrement dit, l'heure est reprsente au format de 12 heures qui compte les heures entires
depuis minuit ou midi. Une heure aprs minuit se prsente de la mme manire que la mme
heure aprs midi. L'heure n'est pas arrondie et une heure un seul chiffre est mise en forme
avec un zro non significatif. Par exemple, si on considre l'heure 5:43 du matin ou de l'aprs-
midi, ce spcificateur de format affiche "05".
L'exemple suivant inclut le spcificateur de format personnalis "hh" dans une chane de
format personnalise.
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.

Spcificateur de format personnalis "H"


Le spcificateur de format personnalis "H" reprsente l'heure sous la forme d'un nombre
compris entre 0 et 23 ; autrement dit, l'heure est reprsente au format de 24 heures de base
zro qui compte les heures depuis minuit. Une heure un seul chiffre est mise en forme sans
zro non significatif.
Si le spcificateur de format "H" est utilis sans autre spcificateur de format personnalis, il
est interprt comme un spcificateur de format de date et d'heure standard et lve
un FormatException. Pour plus d'informations sur l'utilisation d'un spcificateur de format
unique, consultez Utilisation de spcificateurs de format personnaliss uniques, plus loin dans
cette rubrique.
L'exemple suivant inclut le spcificateur de format personnalis "H" dans une chane de format
personnalise.

DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1);


Console.WriteLine(date1.ToString("H:mm:ss",
CultureInfo.InvariantCulture));
// Displays 6:09:01

Spcificateur de format personnalis "HH"


Le spcificateur de format personnalis "HH" (plus n'importe quel nombre de spcificateurs "H"
supplmentaires) reprsente l'heure sous la forme d'un nombre compris entre 00 et 23 ;
autrement dit, l'heure est reprsente au format de 24 heures de base zro qui compte les
heures depuis minuit. Une heure un seul chiffre est mise en forme avec un zro non
significatif.
L'exemple suivant inclut le spcificateur de format personnalis "HH" dans une chane de
format personnalise.
DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1);
Console.WriteLine(date1.ToString("HH:mm:ss",
CultureInfo.InvariantCulture));
// Displays 06:09:01

Spcificateur de format personnalis "K"


Le spcificateur de format personnalis "K" reprsente les informations de fuseau horaire d'une
valeur de date et d'heure. Lorsque ce spcificateur de format est utilis avec les
valeurs DateTime, la chane de rsultat est dfinie par la valeur de la proprit DateTime.Kind :
Pour le fuseau horaire local (une valeur de
proprit DateTime.Kind de DateTimeKind.Local), ce spcificateur est quivalent au
spcificateur "zzz" et produit une chane de rsultat contenant l'offset local par rapport
au temps universel coordonn (UTC, Universal Time Coordinated) ; par exemple, "-
07:00".
Pour une heure UTC (une valeur de proprit DateTime.Kind de DateTimeKind.Utc), la
chane de rsultat inclut un caractre "Z" pour reprsenter une date UTC.
Pour une heure d'un fuseau horaire non spcifi (une heure dont la
proprit DateTime.Kind a la valeur DateTimeKind.Unspecified), le rsultat est
quivalent String.Empty.
Pour les valeurs DateTimeOffset, le spcificateur de format "K" est quivalent au spcificateur
de format "zz", et produit une chane de rsultat contenant l'offset de la
valeur DateTimeOffset par rapport l'heure UTC.
Si le spcificateur de format "K" est utilis sans autre spcificateur de format personnalis, il est
interprt comme un spcificateur de format de date et d'heure standard et lve
un FormatException. Pour plus d'informations sur l'utilisation d'un spcificateur de format
unique, consultez Utilisation de spcificateurs de format personnaliss uniques, plus loin dans
cette rubrique.
L'exemple suivant affiche la chane qui rsulte de l'utilisation du spcificateur de format
personnalis "K" avec diffrentes valeurs DateTime et DateTimeOffset sur un systme situ
dans le fuseau horaire Pacifique (tats-Unis).

Console.WriteLine(DateTime.Now.ToString("%K"));
// Displays -07:00
Console.WriteLine(DateTime.UtcNow.ToString("%K"));
// Displays Z
Console.WriteLine("'{0}'",
DateTime.SpecifyKind(DateTime.Now,
DateTimeKind.Unspecified).ToString("%K"));
// Displays ''
Console.WriteLine(DateTimeOffset.Now.ToString("%K"));
// Displays -07:00
Console.WriteLine(DateTimeOffset.UtcNow.ToString("%K"));
// Displays +00:00
Console.WriteLine(new DateTimeOffset(2008, 5, 1, 6, 30, 0,
new TimeSpan(5, 0, 0)).ToString("%K"));
// Displays +05:00

Spcificateur de format personnalis "m"


Le spcificateur de format personnalis "m" reprsente la minute sous la forme d'un nombre
compris entre 0 et 59. La minute reprsente les minutes entires qui se sont coules depuis la
dernire heure. Une minute un seul chiffre est mise en forme sans zro non significatif.
Si le spcificateur de format "m" est utilis sans autre spcificateur de format personnalis, il
est interprt comme le spcificateur de format de date et d'heure standard "m". Pour plus
d'informations sur l'utilisation d'un spcificateur de format unique, consultez Utilisation de
spcificateurs de format personnaliss uniques, plus loin dans cette rubrique.
L'exemple suivant inclut le spcificateur de format personnalis "m" dans une chane de format
personnalise.

DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5

Spcificateur de format personnalis "mm"


Le spcificateur de format personnalis "mm" (plus n'importe quel nombre de spcificateurs
"m" supplmentaires) reprsente la minute sous la forme d'un nombre compris entre 00 et 59.
La minute reprsente les minutes entires qui se sont coules depuis la dernire heure. Une
minute un seul chiffre est mise en forme avec un zro non significatif.
L'exemple suivant inclut le spcificateur de format personnalis "mm" dans une chane de
format personnalise.

DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.

Spcificateur de format personnalis "M"


Le spcificateur de format personnalis "M" reprsente le mois comme un nombre compris
entre 1 et 12 (ou entre 1 et 13 pour les calendriers de 13 mois). Un mois un seul chiffre est
mis en forme sans zro non significatif.
Si le spcificateur de format "M" est utilis sans autre spcificateur de format personnalis, il
est interprt comme le spcificateur de format de date et d'heure standard "M". Pour plus
d'informations sur l'utilisation d'un spcificateur de format unique, consultez Utilisation de
spcificateurs de format personnaliss uniques, plus loin dans cette rubrique.
L'exemple suivant inclut le spcificateur de format personnalis "M" dans une chane de format
personnalise.

DateTime date1 = new DateTime(2008, 8, 18);


Console.WriteLine(date1.ToString("(M) MMM, MMMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays (8) Aug, August
Console.WriteLine(date1.ToString("(M) MMM, MMMM",
CultureInfo.CreateSpecificCulture("nl-NL")));
// Displays (8) aug, augustus
Console.WriteLine(date1.ToString("(M) MMM, MMMM",
CultureInfo.CreateSpecificCulture("lv-LV")));
// Displays (8) Aug, augusts

Spcificateur de format personnalis "MM"


Le spcificateur de format personnalis "MM" reprsente le mois comme un nombre compris
entre 01 et 12 (ou entre 01 et 13 pour les calendriers de 13 mois). Un mois un seul chiffre est
mis en forme avec un zro non significatif.
L'exemple suivant inclut le spcificateur de format personnalis "MM" dans une chane de
format personnalise.

DateTime date1 = new DateTime(2008, 1, 2, 6, 30, 15);

Console.WriteLine(date1.ToString("dd, MM",
CultureInfo.InvariantCulture));
// 02, 01

Spcificateur de format personnalis "MMM"


Le spcificateur de format personnalis "MMM" reprsente le nom abrg du mois. Le nom
abrg localis du mois est rcupr de la
proprit DateTimeFormatInfo.AbbreviatedMonthNames de la culture actuelle ou spcifie.
L'exemple suivant inclut le spcificateur de format personnalis "MMM" dans une chane de
format personnalise.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("ddd d MMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays ven. 29 aot

Spcificateur de format personnalis "MMMM"


Le spcificateur de format personnalis "MMMM" reprsente le nom complet du mois. Le nom
localis du mois est rcupr de la proprit DateTimeFormatInfo.MonthNames de la culture
actuelle ou spcifie.
L'exemple suivant inclut le spcificateur de format personnalis "MMMM" dans une chane de
format personnalise.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);

Console.WriteLine(date1.ToString("dddd dd MMMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM",
CultureInfo.CreateSpecificCulture("it-IT")));
// Displays venerd 29 agosto

Spcificateur de format personnalis "s"


Le spcificateur de format personnalis "s" reprsente les secondes sous la forme d'un nombre
compris entre 0 et 59. Le rsultat reprsente les secondes entires qui se sont coules depuis
la dernire minute. Une seconde un seul chiffre est mise en forme sans zro non significatif.
Si le spcificateur de format "s" est utilis sans autre spcificateur de format personnalis, il est
interprt comme le spcificateur de format de date et d'heure standard "s". Pour plus
d'informations sur l'utilisation d'un spcificateur de format unique, consultez Utilisation de
spcificateurs de format personnaliss uniques, plus loin dans cette rubrique.
L'exemple suivant inclut le spcificateur de format personnalis "s" dans une chane de format
personnalise.
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5

Spcificateur de format personnalis "ss"


Le spcificateur de format personnalis "ss" (plus n'importe quel nombre de spcificateurs "s"
supplmentaires) reprsente les secondes sous la forme d'un nombre compris entre 00 et 59.
Le rsultat reprsente les secondes entires qui se sont coules depuis la dernire minute.
Une seconde un seul chiffre est mise en forme avec un zro non significatif.
L'exemple suivant inclut le spcificateur de format personnalis "ss" dans une chane de format
personnalise.

DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.

Spcificateur de format personnalis "t"


Le spcificateur de format personnalis "t" reprsente le premier caractre de l'indicateur
AM/PM. L'indicateur localis appropri est rcupr de la
proprit DateTimeFormatInfo.AMDesignator ou DateTimeFormatInfo.PMDesignator de la
culture actuelle ou spcifique. L'indicateur AM est utilis pour toutes les heures comprises
entre 0:00:00 (minuit) et 11:59:59.999. L'indicateur PM est utilis pour toutes les heures
comprises entre 12:00:00 (midi) et 23:59:59.999.
Si le spcificateur de format "t" est utilis sans autre spcificateur de format personnalis, il est
interprt comme le spcificateur de format de date et d'heure standard "t". Pour plus
d'informations sur l'utilisation d'un spcificateur de format unique, consultez Utilisation de
spcificateurs de format personnaliss uniques, plus loin dans cette rubrique.
L'exemple suivant inclut le spcificateur de format personnalis "t" dans une chane de format
personnalise.

DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5

Spcificateur de format personnalis "tt"


Le spcificateur de format personnalis "tt" (plus n'importe quel nombre de spcificateurs "t"
supplmentaires) reprsente l'intgralit de l'indicateur AM/PM. L'indicateur localis appropri
est rcupr de la
proprit DateTimeFormatInfo.AMDesignator ou DateTimeFormatInfo.PMDesignator de la
culture actuelle ou spcifique. L'indicateur AM est utilis pour toutes les heures comprises
entre 0:00:00 (minuit) et 11:59:59.999. L'indicateur PM est utilis pour toutes les heures
comprises entre 12:00:00 (midi) et 23:59:59.999.
Veillez utiliser le spcificateur "tt" pour les langues pour lesquelles il est ncessaire de
maintenir la distinction entre AM et PM. Un exemple est illustr par la langue japonaise, pour
laquelle les indicateurs AM/PM se distinguent dans le deuxime caractre au lieu du premier.
L'exemple suivant inclut le spcificateur de format personnalis "tt" dans une chane de format
personnalise.

DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.

Spcificateur de format personnalis "y"


Le spcificateur de format personnalis "y" reprsente l'anne sous la forme d'un nombre un
chiffre ou deux chiffres. Si l'anne comporte plus de deux chiffres, seuls les deux chiffres de
poids faible apparaissent dans le rsultat. Si le premier chiffre d'une anne sur deux chiffres
commence par un zro (par exemple, 2008), le nombre est mis en forme sans zro non
significatif.
Si le spcificateur de format "y" est utilis sans autre spcificateur de format personnalis, il est
interprt comme le spcificateur de format de date et d'heure standard "y". Pour plus
d'informations sur l'utilisation d'un spcificateur de format unique, consultez Utilisation de
spcificateurs de format personnaliss uniques, plus loin dans cette rubrique.
L'exemple suivant inclut le spcificateur de format personnalis "y" dans une chane de format
personnalise.

DateTime date1 = new DateTime(1, 12, 1);


DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010

Spcificateur de format personnalis "yy"


Le spcificateur de format personnalis "yy" reprsente l'anne sous la forme d'un nombre
deux chiffres. Si l'anne comporte plus de deux chiffres, seuls les deux chiffres de poids faible
apparaissent dans le rsultat. Si l'anne deux chiffres comporte moins de deux chiffres
significatifs, le nombre est complt avec des zros non significatifs pour qu'il possde deux
chiffres.
Dans une opration d'analyse, une anne deux chiffres qui est analyse avec le spcificateur
de format personnalis "yy" est interprte sur la base de la
proprit Calendar.TwoDigitYearMax du calendrier actuel du fournisseur de format. L'exemple
suivant analyse la reprsentation sous forme de chane d'une date ayant une anne deux
chiffres, en utilisant le calendrier grgorien par dfaut de la culture en-US, laquelle reprsente
la culture actuelle. Il remplace ensuite l'objet CultureInfo de la culture actuelle afin d'utiliser un
objet GregorianCalendar dont la proprit TwoDigitYearMax a t modifie.

using System;
using System.Globalization;
using System.Threading;

public class Example


{
public static void Main()
{
string fmt = "dd-MMM-yy";
string value = "24-Jan-49";

Calendar cal = (Calendar) CultureInfo.CurrentCulture.Calendar.Clone();


Console.WriteLine("Two Digit Year Range: {0} - {1}",
cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax);

Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null));


Console.WriteLine();

cal.TwoDigitYearMax = 2099;
CultureInfo culture = (CultureInfo) CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.Calendar = cal;
Thread.CurrentThread.CurrentCulture = culture;

Console.WriteLine("Two Digit Year Range: {0} - {1}",


cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax);
Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null));
}
}
// The example displays the following output:
// Two Digit Year Range: 1930 - 2029
// 1/24/1949
//
// Two Digit Year Range: 2000 - 2099
// 1/24/2049

L'exemple suivant inclut le spcificateur de format personnalis "yy" dans une chane de format
personnalis.

DateTime date1 = new DateTime(1, 12, 1);


DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010

Spcificateur de format personnalis "yyy"


Le spcificateur de format personnalis "yyy" reprsente l'anne avec un minimum de trois
chiffres. Si l'anne comporte plus de trois chiffres significatifs, ils sont inclus dans la chane
rsultante. Si l'anne comporte moins de trois chiffres, le nombre est rempli avec des zros non
significatifs pour produire trois chiffres.
Remarque

Pour le calendrier bouddhiste thalandais, qui peut comporter des annes cinq chiffres, ce
spcificateur de format affiche tous les chiffres significatifs.
L'exemple suivant inclut le spcificateur de format personnalis "yyy" dans une chane de
format personnalise.
DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010

Spcificateur de format personnalis "yyyy"


Le spcificateur de format personnalis "yyyy" reprsente l'anne avec un minimum de quatre
chiffres. Si l'anne comporte plus de quatre chiffres significatifs, ils sont inclus dans la chane
rsultante. Si l'anne comporte moins de quatre chiffres, le nombre est rempli l'aide de zros
non significatifs pour produire quatre chiffres.
Remarque

Pour le calendrier bouddhiste thalandais, qui peut comporter des annes cinq chiffres, ce
spcificateur de format affiche au minimum quatre chiffres.
L'exemple suivant inclut le spcificateur de format personnalis "yyyy" dans une chane de
format personnalise.

DateTime date1 = new DateTime(1, 12, 1);


DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010

Spcificateur de format personnalis "yyyyy"


Le spcificateur de format personnalis "yyyyy" (plus tout nombre de spcificateurs "y"
supplmentaires) reprsente l'anne avec au minimum cinq chiffres. Si l'anne comporte plus
de cinq chiffres significatifs, ils sont inclus dans la chane rsultante. Si l'anne comporte moins
de cinq chiffres, le nombre est rempli avec des zros non significatifs pour produire cinq
chiffres.
S'il existe des spcificateurs "y" supplmentaires, le nombre est rempli avec autant de zros
non significatifs que ncessaire pour produire le nombre de spcificateurs "y".
L'exemple suivant inclut le spcificateur de format personnalis "yyyyy" dans une chane de
format personnalise.

DateTime date1 = new DateTime(1, 12, 1);


DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010

Spcificateur de format personnalis "z"


Avec les valeurs DateTime, le spcificateur de format personnalis "z" reprsente l'offset sign
du fuseau horaire du systme d'exploitation local par rapport au temps universel coordonn
(UTC, Coordinated Universal Time), mesur en heures. Il ne reflte pas la valeur de la
proprit DateTime.Kindd'une instance. C'est pourquoi il n'est pas recommand d'utiliser le
spcificateur de format "z" avec les valeurs DateTime.
Avec les valeurs DateTimeOffset, ce spcificateur de format reprsente l'offset de la
valeur DateTimeOffset par rapport l'heure UTC, en heures.
L'offset est toujours affich avec un signe de dbut. Un signe plus (+) indique les heures avant
l'heure UTC, et un signe moins (-) indique les heures aprs l'heure UTC. Un offset un seul
chiffre est mis en forme sans zro non significatif.
Si le spcificateur de format "z" est utilis sans autre spcificateur de format personnalis, il est
interprt comme un spcificateur de format de date et d'heure standard et lve
un FormatException. Pour plus d'informations sur l'utilisation d'un spcificateur de format
unique, consultez Utilisation de spcificateurs de format personnaliss uniques, plus loin dans
cette rubrique.
L'exemple suivant inclut le spcificateur de format personnalis "z" dans une chane de format
personnalise.

DateTime date1 = DateTime.UtcNow;


Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date1));
// Displays -7, -07, -07:00

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0,


new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date2));
// Displays +6, +06, +06:00

Spcificateur de format personnalis "zz"


Avec les valeurs DateTime, le spcificateur de format personnalis "zz" reprsente l'offset sign
du fuseau horaire du systme d'exploitation local par rapport l'heure UTC, mesur en heures.
Il ne reflte pas la valeur de la proprit DateTime.Kind d'une instance. C'est pourquoi il n'est
pas recommand d'utiliser le spcificateur de format "zz" avec les valeurs DateTime.
Avec les valeurs DateTimeOffset, ce spcificateur de format reprsente l'offset de la
valeur DateTimeOffset par rapport l'heure UTC, en heures.
L'offset est toujours affich avec un signe de dbut. Un signe plus (+) indique les heures avant
l'heure UTC, et un signe moins (-) indique les heures aprs l'heure UTC. Un offset un seul
chiffre est mis en forme avec un zro non significatif.
L'exemple suivant inclut le spcificateur de format personnalis "zz" dans une chane de format
personnalise.

DateTime date1 = DateTime.UtcNow;


Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date1));
// Displays -7, -07, -07:00

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0,


new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date2));
// Displays +6, +06, +06:00

Spcificateur de format personnalis "zzz"


Avec les valeurs DateTime, le spcificateur de format personnalis "zzz" reprsente l'offset
sign du fuseau horaire du systme d'exploitation local par rapport l'heure UTC, mesur en
heures et en minutes. Il ne reflte pas la valeur de la proprit DateTime.Kind d'une instance.
C'est pourquoi il n'est pas recommand d'utiliser le spcificateur de format "zzz" avec les
valeurs DateTime.
Avec les valeurs DateTimeOffset, ce spcificateur de format reprsente l'offset de la
valeur DateTimeOffset par rapport l'heure UTC, en heures et en minutes.
L'offset est toujours affich avec un signe de dbut. Un signe plus (+) indique les heures avant
l'heure UTC, et un signe moins (-) indique les heures aprs l'heure UTC. Un offset un seul
chiffre est mis en forme avec un zro non significatif.
L'exemple suivant inclut le spcificateur de format personnalis "zzz" dans une chane de
format personnalise.

DateTime date1 = DateTime.UtcNow;


Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date1));
// Displays -7, -07, -07:00

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0,


new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date2));
// Displays +6, +06, +06:00

Spcificateur de format personnalis ":"


Le spcificateur de format personnalis ":" reprsente le sparateur d'heure, lequel est utilis
pour diffrencier les heures, les minutes et les secondes. Le sparateur d'heure localis
appropri est rcupr de la proprit DateTimeFormatInfo.TimeSeparator de la culture
actuelle ou spcifie.
Remarque

Pour modifier le sparateur horaire d'une chane de date et heure, spcifiez le caractre de
sparation dans un dlimiteur de chane littrale. Par exemple, la chane de format
personnalise hh'_'dd'_'ss produit une chane de rsultat dans laquelle "_ " (trait de
soulignement) est toujours utilis comme sparateur horaire. Pour modifier le sparateur
horaire de toutes les dates d'une culture, modifiez la valeur de la
proprit DateTimeFormatInfo.TimeSeparator de la culture actuelle, ou instanciez un
objet DateTimeFormatInfo, affectez le caractre sa proprit TimeSeparator, puis appelez
une surcharge de la mthode de mise en forme qui inclut un paramtre IFormatProvider.
Si le spcificateur de format ":" est utilis sans autre spcificateur de format personnalis, il est
interprt comme un spcificateur de format de date et d'heure standard et lve
un FormatException. Pour plus d'informations sur l'utilisation d'un spcificateur de format
unique, consultez Utilisation de spcificateurs de format personnaliss uniques, plus loin dans
cette rubrique.

Spcificateur de format personnalis "/"


Le spcificateur de format personnalis "/" reprsente le sparateur de date, lequel est utilis
pour diffrencier les annes, les mois et les jours. Le sparateur de date localis appropri est
rcupr de la proprit DateTimeFormatInfo.DateSeparator de la culture actuelle ou spcifie.

Remarque

Pour modifier le sparateur de date d'une chane de date et heure, spcifiez le caractre de
sparation dans un dlimiteur de chane littrale. Par exemple, la chane de format
personnalise mm'/'dd'/'yyyy produit une chane de rsultat dans laquelle "/" est toujours
utilis comme sparateur de date. Pour modifier le sparateur de date de toutes les dates
d'une culture, modifiez la valeur de la proprit DateTimeFormatInfo.DateSeparator de la
culture actuelle, ou instanciez un objet DateTimeFormatInfo, affectez le caractre sa
proprit DateSeparator, puis appelez une surcharge de la mthode de mise en forme qui
inclut un paramtre IFormatProvider.
Si le spcificateur de format "/" est utilis sans autre spcificateur de format personnalis, il est
interprt comme un spcificateur de format de date et d'heure standard et lve
un FormatException. Pour plus d'informations sur l'utilisation d'un spcificateur de format
unique, consultez Utilisation de spcificateurs de format personnaliss uniques, plus loin dans
cette rubrique.

Notes
Utilisation de spcificateurs de format personnaliss uniques
Une chane de format de date et d'heure personnalise se compose d'au moins deux
caractres. Les mthodes de mise en forme de la date et de l'heure interprtent toute chane
un caractre comme une chane de format de date et d'heure standard. Si elles ne
reconnaissent pas le caractre comme un spcificateur de format valide, elles lvent
un FormatException. Par exemple, une chane de format qui se compose uniquement du
spcificateur "h" est interprte comme une chane de format de date et d'heure standard.
Cependant, dans ce cas particulier, une exception est leve, car il n'existe pas spcificateur de
format``de date et d'heure "h" standard.
Pour utiliser tout spcificateur de format de date et d'heure personnalis comme seul
spcificateur dans une chane de format (autrement dit, utiliser le spcificateur de format
personnalis "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" ou "/" tout seul),
incluez un espace avant ou aprs le spcificateur, ou incluez un spcificateur de format
pourcentage ("%") avant le spcificateur de date et d'heure personnalis unique.
Par exemple , "%h"" est interprt en tant que chane de format de date et d'heure
personnalise qui affiche l'heure reprsente par la valeur de date et d'heure actuelle. Vous
pouvez galement utiliser la chane de format "h" ou "h", bien que cela inclue un espace avec
l'heure dans la chane de rsultat. L'exemple suivant illustre ces trois chanes de format.

DateTime dat1 = new DateTime(2009, 6, 15, 13, 45, 0);

Console.WriteLine("'{0:%h}'", dat1);
Console.WriteLine("'{0: h}'", dat1);
Console.WriteLine("'{0:h }'", dat1);
// The example displays the following output:
// '1'
// ' 1'
// '1 '

Utilisation du caractre d'chappement


Les caractres "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" ou "/" dans une
chane de format sont interprts comme des spcificateurs de format personnaliss plutt que
comme des caractres littraux. Pour viter qu'un caractre soit interprt comme un
spcificateur de format, vous pouvez le faire prcder d'une barre oblique inverse (\), qui est le
caractre d'chappement. Le caractre d'chappement signifie que le caractre suivant est un
caractre littral qui doit tre inclus inchang dans la chane de rsultat.
Pour inclure une barre oblique inverse dans une chane de rsultat, vous devez la placer dans
une squence d'chappement avec une autre barre oblique inverse (\\).
Remarque

Certains compilateurs, tels que les compilateurs C++ et , peuvent galement interprter une
barre oblique inverse unique comme un caractre d'chappement. Pour garantir
l'interprtation correcte d'une chane lors de la mise en forme, vous pouvez utiliser le
caractre littral de chane textuel(le caractre @) avant la chane en , ou ajouter une autre
barre oblique inverse avant chaque barre oblique inverse en et C++. L'exemple suivant
illustre ces deux approches.
L'exemple suivant utilise le caractre d'chappement pour empcher l'opration de mise en
forme d'interprter les caractres "h" et "m" comme des spcificateurs de format.
DateTime date = new DateTime(2009, 06, 15, 13, 45, 30, 90);
string fmt1 = "h \\h m \\m";
string fmt2 = @"h \h m \m";

Console.WriteLine("{0} ({1}) -> {2}", date, fmt1, date.ToString(fmt1));


Console.WriteLine("{0} ({1}) -> {2}", date, fmt2, date.ToString(fmt2));
// The example displays the following output:
// 6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m
// 6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m

Paramtres du panneau de configuration


Les paramtres Options rgionales et linguistiques du Panneau de configuration influencent la
chane de rsultat produite par une opration de mise en forme qui inclut une grande partie
des spcificateurs de format de date et d'heure personnaliss. Ces paramtres sont utiliss
pour initialiser l'objet DateTimeFormatInfo associ la culture du thread en cours qui fournit
des valeurs utilises pour indiquer la mise en forme. Les ordinateurs qui utilisent des
paramtres diffrents gnrent des chanes de rsultat diffrentes.

De plus, si vous utilisez le constructeur CultureInfo.CultureInfo(String) pour instancier un nouvel


objet CultureInfo qui reprsente la mme culture que la culture systme en cours, toutes les
personnalisations tablies par l'lment Options rgionales et linguistiques du Panneau de
configuration seront appliques au nouvel objet CultureInfo. Vous pouvez utiliser le
constructeur CultureInfo.CultureInfo(String, Boolean) pour crer un objet CultureInfo qui ne
reflte pas les personnalisations d'un systme.

Proprits DateTimeFormatInfo
La mise en forme dpend des proprits de l'objet DateTimeFormatInfo actif, qui est fourni
implicitement par la culture actuelle du thread ou explicitement par le
paramtre IFormatProvider de la mthode qui appelle la mise en forme. Pour le
paramtre IFormatProvider, vous devez spcifier un objet CultureInfo qui reprsente une
culture, ou un objet DateTimeFormatInfo.

La chane de rsultat produite par la plupart des spcificateurs de format de date et d'heure
personnaliss dpend galement des proprits de l'objet DateTimeFormatInfo actif. Votre
application peut modifier le rsultat produit par certains spcificateurs de format de date et
d'heure personnaliss en modifiant la proprit DateTimeFormatInfo correspondante. Par
exemple, le spcificateur de format "ddd" ajoute la chane de rsultat le nom abrg d'un jour
de la semaine trouv dans le tableau de chanes AbbreviatedDayNames. De la mme faon, le
spcificateur de format "MMMM" ajoute la chane de rsultat un nom de mois complet
trouv dans le tableau de chanes MonthNames.