Partager via


DateTimeFormatter Classe

Définition

Met en forme les dates et les heures.

public ref class DateTimeFormatter sealed
/// [Windows.Foundation.Metadata.Activatable(Windows.Globalization.DateTimeFormatting.IDateTimeFormatterFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DateTimeFormatter final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.Globalization.DateTimeFormatting.IDateTimeFormatterFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class DateTimeFormatter final
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Globalization.DateTimeFormatting.IDateTimeFormatterFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DateTimeFormatter
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Globalization.DateTimeFormatting.IDateTimeFormatterFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class DateTimeFormatter
function DateTimeFormatter(yearFormat, monthFormat, dayFormat, dayOfWeekFormat, hourFormat, minuteFormat, secondFormat, languages, geographicRegion, calendar, clock)
Public NotInheritable Class DateTimeFormatter
Héritage
Object Platform::Object IInspectable DateTimeFormatter
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Utilisez la classe DateTimeFormatter pour mettre en forme une date.

// Format a date via a string template. Note that the order specifed in the string pattern does
// not determine the order of the parts of the formatted string. The user's language and region
// preferences will determine the pattern of the date returned based on the specified parts.

var formatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("month day dayofweek year");
DateTime dateToFormat = DateTime.Now;
var mydate = formatter.Format(dateToFormat);

Grammaire de modèleLa grammaire suivante définit ce qui est accepté pour un modèle :

<pattern> ::= [<literal-text>] <datetime-pattern> [<literal-text>] |
              [<literal-text>] <datetime-pattern> <pattern>

<literal-text> ::= <literal-character>+

<literal-character> ::= [^{}] | "{openbrace}" | "{closebrace}"

<datetime-pattern> ::= <date-pattern> | <time-pattern>

<date-pattern> ::= <era> | <year> | <month> | <day> | <dayofweek>

<time-pattern> ::= <period> | <hour> | <minute> | <second> | <timezone>

<era> ::= "{era.abbreviated" [<ideal-length>] "}"

<year> ::= "{year.full" [<ideal-length>] "}" |
           "{year.abbreviated" [<ideal-length>] "}"

<month> ::= "{month.full}" |
            "{month.solo.full}" |
            "{month.abbreviated" [<ideal-length>] "}"
            "{month.solo.abbreviated" [<ideal-length>] "}"
            "{month.integer" [<ideal-length>] "}"

<dayofweek> ::= "{dayofweek.full}" |
                "{dayofweek.solo.full}" |
                "{dayofweek.abbreviated" [<ideal-length>] "}"
                "{dayofweek.solo.abbreviated" [<ideal-length>] "}"

<day> ::= "{day.integer" [<ideal-length>] "}"

<period> ::= "{period.abbreviated" [<ideal-length>] "}"

<hour> ::= "{hour.integer" [<ideal-length>] "}"

<minute> ::= "{minute.integer" [<ideal-length>] "}"

<second> ::= "{second.integer" [<ideal-length>] "}"

<timezone> ::= "{timezone.full}" |
                "{timezone.abbreviated" [<ideal-length>] "}"

<ideal-length> ::= "(" <non-zero-digit> ")"

<non-zero-digit> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

Grammaire du modèleLa grammaire suivante définit ce qui est accepté pour un modèle :

<template> ::= <opt-whitespace> <date> <opt-whitespace> |
               <opt-whitespace> <time> <opt-whitespace> |
               <opt-whitespace> <specific-date> <whitespace> <time> <opt-whitespace> |
               <opt-whitespace> <time> <whitespace> <specific-date> <opt-whitespace> |
               <opt-whitespace> <relative-date> <whitespace> <time> <opt-whitespace> |
               <opt-whitespace> <time> <whitespace> <relative-date> <opt-whitespace>

<opt-whitespace> ::= [<whitespace>] 

<whitespace> ::= " "+ 

<date> ::= <year> | <month> | <day> | <month-year> | <relative-date> | <specific-date>

<relativedate> ::= <dayofweek> | <month-day> | <relative-longdate>

<specificdate> ::= <shortdate> | <longdate>

<month-day> ::= <month> <whitespace> <day> |
                <day> <whitespace> <month>

<relative-longdate> ::= <month> <whitespace> <day> <whitespace> <dayofweek> |
                        <month> <whitespace> <dayofweek> <whitespace> <day> |
                        <day> <whitespace> <month> <whitespace> <dayofweek> |
                        <day> <whitespace> <dayofweek> <whitespace> <month> |
                        <dayofweek> <whitespace> <day> <whitespace> <month> |
                        <dayofweek> <whitespace> <month> <whitespace> <day>

<month-year> ::= <month> <whitespace> <year> |
                 <year> <whitespace> <month>


<shortdate> ::= "shortdate" |
                <month> <whitespace> <day> <whitespace> <year> |
                <month> <whitespace> <year> <whitespace> <day> |
                <day> <whitespace> <month> <whitespace> <year> |
                <day> <whitespace> <year> <whitespace> <month> |
                <year> <whitespace> <day> <whitespace> <month> |
                <year> <whitespace> <month> <whitespace> <day>


<longdate> ::= "longdate" |
               <year> <whitespace> <month> <whitespace> <day> <whitespace> <dayofweek> |
               <year> <whitespace> <month> <whitespace> <dayofweek> <whitespace> <day> |
               <year> <whitespace> <day> <whitespace> <month> <whitespace> <dayofweek> |
               <year> <whitespace> <day> <whitespace> <dayofweek> <whitespace> <month> |
               <year> <whitespace> <dayofweek> <whitespace> <day> <whitespace> <month> |
               <year> <whitespace> <dayofweek> <whitespace> <month> <whitespace> <day> |
               <month> <whitespace> <year> <whitespace> <day> <whitespace> <dayofweek> |
               <month> <whitespace> <year> <whitespace> <dayofweek> <whitespace> <day> |
               <day> <whitespace> <year> <whitespace> <month> <whitespace> <dayofweek> |
               <day> <whitespace> <year> <whitespace> <dayofweek> <whitespace> <month> |
               <dayofweek> <whitespace> <year> <whitespace> <day> <whitespace> <month> |
               <dayofweek> <whitespace> <year> <whitespace> <month> <whitespace> <day> |
               <month> <whitespace> <day> <whitespace> <year> <whitespace> <dayofweek> |
               <month> <whitespace> <dayofweek> <whitespace> <year> <whitespace> <day> |
               <day> <whitespace> <month> <whitespace> <year> <whitespace> <dayofweek> |
               <day> <whitespace> <dayofweek> <whitespace> <year> <whitespace> <month> |
               <dayofweek> <whitespace> <day> <whitespace> <year> <whitespace> <month> |
               <dayofweek> <whitespace> <month> <whitespace> <year> <whitespace> <day> |
               <month> <whitespace> <day> <whitespace> <dayofweek> <whitespace> <year> |
               <month> <whitespace> <dayofweek> <whitespace> <day> <whitespace> <year> |
               <day> <whitespace> <month> <whitespace> <dayofweek> <whitespace> <year> |
               <day> <whitespace> <dayofweek> <whitespace> <month> <whitespace> <year> |
               <dayofweek> <whitespace> <day> <whitespace> <month> <whitespace> <year> |
               <dayofweek> <whitespace> <month> <whitespace> <day> <whitespace> <year>

<time> ::= <hour> | 
           <hour> <whitespace> <timezone> |
           <timezone> <whitespace> <hour> |
           <shorttime> |
           <longtime>

<shorttime> ::= "shorttime" |
                <hour> <whitespace> <minute> |
                <minute> <whitespace> <hour> |
                <timezone> <whitespace> <hour> <whitespace> <minute> |
                <timezone> <whitespace> <minute> <whitespace> <hour> |
                <hour> <whitespace> <timezone> <whitespace> <minute> |
                <minute> <whitespace> <timezone> <whitespace> <hour> |
                <hour> <whitespace> <minute> <whitespace> <timezone> |
                <minute> <whitespace> <hour> <whitespace> <timezone>

<longtime> ::= "longtime" |
               <hour> <whitespace> <minute> <whitespace> <second> |
               <hour> <whitespace> <second> <whitespace> <minute> |
               <minute> <whitespace> <hour> <whitespace> <second> |
               <minute> <whitespace> <second> <whitespace> <hour> |
               <second> <whitespace> <minute> <whitespace> <hour> |
               <second> <whitespace> <hour> <whitespace> <minute> |
               <timezone> <whitespace> <hour> <whitespace> <minute> <whitespace> <second> |
               <timezone> <whitespace> <hour> <whitespace> <second> <whitespace> <minute> |
               <timezone> <whitespace> <minute> <whitespace> <hour> <whitespace> <second> |
               <timezone> <whitespace> <minute> <whitespace> <second> <whitespace> <hour> |
               <timezone> <whitespace> <second> <whitespace> <minute> <whitespace> <hour> |
               <timezone> <whitespace> <second> <whitespace> <hour> <whitespace> <minute> |
               <hour> <whitespace> <timezone> <whitespace> <minute> <whitespace> <second> |
               <hour> <whitespace> <timezone> <whitespace> <second> <whitespace> <minute> |
               <minute> <whitespace> <timezone> <whitespace> <hour> <whitespace> <second> |
               <minute> <whitespace> <timezone> <whitespace> <second> <whitespace> <hour> |
               <second> <whitespace> <timezone> <whitespace> <minute> <whitespace> <hour> |
               <second> <whitespace> <timezone> <whitespace> <hour> <whitespace> <minute> |
               <hour> <whitespace> <minute> <whitespace> <timezone> <whitespace> <second> |
               <hour> <whitespace> <second> <whitespace> <timezone> <whitespace> <minute> |
               <minute> <whitespace> <hour> <whitespace> <timezone> <whitespace> <second> |
               <minute> <whitespace> <second> <whitespace> <timezone> <whitespace> <hour> |
               <second> <whitespace> <minute> <whitespace> <timezone> <whitespace> <hour> |
               <second> <whitespace> <hour> <whitespace> <timezone> <whitespace> <minute> |
               <hour> <whitespace> <minute> <whitespace> <second> <whitespace> <timezone> |
               <hour> <whitespace> <second> <whitespace> <minute> <whitespace> <timezone> |
               <minute> <whitespace> <hour> <whitespace> <second> <whitespace> <timezone> |
               <minute> <whitespace> <second> <whitespace> <hour> <whitespace> <timezone> |
               <second> <whitespace> <minute> <whitespace> <hour> <whitespace> <timezone> |
               <second> <whitespace> <hour> <whitespace> <minute> <whitespace> <timezone>

<year> ::= "year" | "year.full" | "year.abbreviated"

<month> ::= "month" | "month.full" | "month.abbreviated" | "month.numeric"

<day> ::= "day"

<dayofweek> ::= "dayofweek" | "dayofweek.full" | "dayofweek.abbreviated"

<hour> ::= "hour"

<minute> ::= "minute"

<second> ::= "second"

<timezone> ::= "timezone" | "timezone.full" | "timezone.abbreviated"

Remarques

Notes

Cette API est en cours de mise à jour pour prendre en charge le changement d’ère japonaise de mai 2019. Si votre application prend en charge le calendrier japonais, vous devez vérifier qu’elle gère correctement la nouvelle ère. Pour plus d’informations, consultez Préparer votre application pour la modification de l’ère japonaise .

Notes

Si votre application transmet les balises de langue utilisées dans cette classe à des fonctions de support linguistique national , elle doit d’abord convertir les balises en appelant ResolveLocaleName.

Certains constructeurs pour DateTimeFormatter prennent un paramètre de chaîne formatTemplate qui spécifie les composants demandés à mettre en forme. Ce paramètre peut être un modèle de format ou un modèle de format. Les modèles de format sont pratiques à utiliser et à fournir une mise en forme qui est typique de la langue, de l’horloge et du calendrier que vous spécifiez. Les modèles de format offrent un meilleur contrôle de la sortie que les modèles de format. Si vous avez besoin d’une mise en forme non standard, utilisez des modèles de format au lieu de modèles.

Dans un modèle de format, vous spécifiez les composants (heure, date, jour de la semaine, etc.) que vous souhaitez inclure dans la sortie mise en forme. Le formateur met en forme les composants en fonction de la langue, de l’horloge et du calendrier spécifiés. L’ordre des composants dans votre modèle n’a pas d’importance ; le formateur trie les composants en fonction de l’ordre indiqué dans la langue du modèle de format ci-dessous.

Certains modèles couramment utilisés sont répertoriés dans le tableau suivant. Dans les modèles avec plusieurs composants, le composant peut être l’une des variantes de composant prises en charge et les composants peuvent être dans n’importe quel ordre. Par exemple, « dayofweek.full year month.numeric day » est pris en charge. (Voir ci-dessous, après les exemples, pour connaître la grammaire qui définit des modèles valides.)

Important

Vous ne pouvez pas combiner arbitrairement des composants et nécessairement obtenir un modèle valide. Les seuls modèles valides sont ceux définis par la grammaire fournie.

Modèle
longdate
shortdate
Longue
shorttime
dayofweek
dayofweek.full
dayofweek.abbreviated
day
month
month.full
month.abbreviated
month.numeric
year
year.full
year.abbreviated
dayofweek day month year
dayofweek day month
jour mois année
jour mois
month year
hour
minute
second
heure minute seconde
heure minute
timezone
timezone.full
timezone.abbreviated
année mois jour heure

Le tableau suivant présente l’exemple de sortie des formateurs créés avec différentes valeurs de modèle, de langue et d’horloge. La colonne « Modèle équivalent » fournit un modèle qui produit la même sortie que le modèle.

ModèleLanguageHorlogeSortieModèle équivalent
longdatefr-FR<non spécifié>lundi 2 septembre 2013{dayofweek.full}, {month.full} {day.integer}, {year.full}
longdatefr-FR<non spécifié>lundi 2 septembre 2013{dayofweek.full} {day.integer} {month.full} {year.full}
shortdatefr-FR<non spécifié>9‎/‎2‎/‎2013{month.integer}/{day.integer}/{year.full}
shortdatefr-FR<non spécifié>02‎/‎09‎/‎2013{day.integer(2)}/{month.integer(2)}/{year.full}
dayofweek mois jourfr-FR<non spécifié>Lundi 2 septembre{dayofweek.full}, {month.full} {day.integer}
jour de mois dayofweekfr-FR<non spécifié>Lundi 2 septembre{dayofweek.full}, {month.full} {day.integer}
Longuefr-FR<non spécifié>06:01:24 AM{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated}
Longuefr-FR24HourClock‎17‎:‎32‎:‎45{hour.integer}:{minute.integer(2)}:{second.integer(2)}
Longuefr-FR<non spécifié>17‎:‎32‎:‎45{hour.integer(2)}:{minute.integer(2)}:{second.integer(2)}
shorttimefr-FR<non spécifié>6:01{hour.integer}:{minute.integer(2)} {period.abbreviated}
shorttimefr-FR24HourClock17‎:‎32{hour.integer}:{minute.integer(2)}
shorttimefr-FR<non spécifié>17‎:‎32{hour.integer(2)}:{minute.integer(2)}

Les modèles de format sont composés d’une chaîne littérale avec des champs délimités par des accolades, telles que « {day.numeric}/{month.numeric}/{year.full} ». Certains champs couramment utilisés sont répertoriés dans le tableau suivant. (Voir ci-dessous, après les exemples, pour connaître la grammaire qui définit des modèles valides.)

Important

Vous ne pouvez pas combiner arbitrairement des champs et obtenir nécessairement un modèle valide. Les seuls modèles valides sont ceux définis par la grammaire fournie.

Champ Modèle de mise en forme
{openbrace}
{closebrace}
{dayofweek.solo.<type>} où <type> est complet / abbreviated / abbreviated(n)
{dayofweek.<type>} où <type> est complet / abbreviated / abbreviated(n)
{day.<type>} où <type> est entier / integer(n)
{month.<type>} où <type> est complet / abbreviated / abbreviated(n) / integer / integer(n)
{month.solo.<type>} où <type> est complet / abbreviated / abbreviated(n)
{year.<type>} où <type> est complet / abbreviated / abbreviated(n)
{era.<type>} où <type> est complet / abbreviated / abbreviated(n)
{hour.<type>} où <type> est entier / integer(n)
{period.<type>} où <type> est complet / abbreviated / abbreviated(n)
{minute.<type>} où <type> est entier / integer(n)
{seconde.<type>} où <type> est entier / integer(n)
{fuseau horaire.<type>} où <type> est complet / abbreviated / abbreviated(n)

Notes

  • Utilisez {openbrace} ou {closebrace} pour spécifier que « { » ou « } » s’affiche dans la chaîne littérale.
  • solo spécifie le formulaire autonome. Pour les langues avec des distinctions de cas génitifs, le cas génitif est le cas non marqué. Pour obtenir le cas nominatif, utilisez solo.
  • integer(2) pour le cinquième jour du mois (par exemple) est « 05 », tandis que integer(1) produit « 5 ». integer produit le meilleur n pour une combinaison langue/calendrier donnée.
  • Pendant des années, full produit tous les chiffres (« 2013 »). abbreviated est synonyme de abbreviated(2), qui est l’année à 2 chiffres pour le calendrier grégorien (« 13 »). (D’autres calendriers peuvent éventuellement utiliser autre chose comme valeur par défaut ; nous avons conservé la sémantique du meilleur pour une combinaison de langue/calendrier donnée.) abbreviated(n) est tronqué aux n chiffres les moins significatifs (par exemple, 2013 avec n =1 est « 3 »).

Le tableau suivant montre un exemple de sortie à partir de formateurs créés avec différentes valeurs de modèle, de langue et d’horloge.

ModèleLangageHorlogeSortie
{dayofweek.full}, {month.full} {day.integer}, {year.full}fr-FR<non spécifié>lundi 2 septembre 2013
{dayofweek.full}, {day.integer(2)} {month.full}, {year.full}fr-FR<non spécifié>lundi, 02 septembre, 2013
{month.integer}/{day.integer}/{year.full}fr-FR<non spécifié>9/‎2/2013
{month.integer}/{day.integer}/{year.abbreviated}fr-FR<non spécifié>9/‎2/13
{month.integer(2)}/{day.integer(2)}/{year.abbreviated}fr-FR<non spécifié>09/‎02/13
{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated}fr-FR<non spécifié>06:01:24 AM
{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated}fr-FR24HourClock17:32:45

Constructeurs

DateTimeFormatter(HourFormat, MinuteFormat, SecondFormat)

Crée un objet DateTimeFormatter qui est initialisé avec des formats d’heure, de minute et de seconde.

DateTimeFormatter(String)

Crée un objet DateTimeFormatter initialisé par une chaîne de modèle de format.

DateTimeFormatter(String, IIterable<String>)

Crée un objet DateTimeFormatter initialisé par une chaîne de modèle de format et une liste de langues.

DateTimeFormatter(String, IIterable<String>, String, String, String)

Crée un objet DateTimeFormatter initialisé par une chaîne de modèle de format, une liste de langues, une région géographique, un calendrier et une horloge.

DateTimeFormatter(YearFormat, MonthFormat, DayFormat, DayOfWeekFormat)

Crée un objet DateTimeFormatter initialisé avec les formats année, mois, jour et jour de la semaine.

DateTimeFormatter(YearFormat, MonthFormat, DayFormat, DayOfWeekFormat, HourFormat, MinuteFormat, SecondFormat, IIterable<String>)

Crée un objet DateTimeFormatter initialisé avec les formats year, month, day, day, day of week, hour, minute et second, ainsi qu’une liste de langues.

DateTimeFormatter(YearFormat, MonthFormat, DayFormat, DayOfWeekFormat, HourFormat, MinuteFormat, SecondFormat, IIterable<String>, String, String, String)

Crée un objet DateTimeFormatter avec tous les formats et identificateurs spécifiés.

Propriétés

Calendar

Obtient le calendrier utilisé lors de la mise en forme des dates.

Clock

Obtient l’horloge utilisée lors de la mise en forme des heures.

GeographicRegion

Obtient ou définit la région utilisée lors de la mise en forme des dates et des heures.

IncludeDay

Obtient la valeur DayFormat dans le modèle.

IncludeDayOfWeek

Obtient le DayOfWeekFormat dans le modèle.

IncludeHour

Obtient le HourFormat dans le modèle.

IncludeMinute

Obtient le MinuteFormat dans le modèle.

IncludeMonth

Obtient le MonthFormat dans le modèle.

IncludeSecond

Obtient le SecondFormat dans le modèle.

IncludeYear

Obtient la valeur YearFormat dans le modèle.

Languages

Obtient la liste de priorité des identificateurs de langue utilisés lors de la mise en forme des dates et des heures.

LongDate

Obtient l’objet DateTimeFormatter qui met en forme les dates en fonction du choix du modèle de date longue de l’utilisateur.

LongTime

Obtient l’objet DateTimeFormatter qui met en forme les heures en fonction du choix de l’utilisateur en fonction du modèle de temps long.

NumeralSystem

Obtient ou définit le système de numérotation utilisé pour mettre en forme les dates et les heures.

Patterns

Obtient les modèles correspondant à ce modèle qui sont utilisés lors de la mise en forme des dates et des heures.

ResolvedGeographicRegion

Obtient la région géographique qui a été utilisée le plus récemment pour mettre en forme les dates et les heures.

ResolvedLanguage

Obtient la langue qui a été utilisée le plus récemment pour mettre en forme des dates et des heures.

ShortDate

Obtient l’objet DateTimeFormatter qui met en forme les dates en fonction du choix de l’utilisateur de modèle de date courte.

ShortTime

Obtient l’objet DateTimeFormatter qui met en forme les heures en fonction du modèle de temps court choisi par l’utilisateur.

Template

Obtient une représentation sous forme de chaîne de ce modèle de format.

Méthodes

Format(DateTime)

Retourne une représentation sous forme de chaîne de la date et de l’heure fournies.

Format(DateTime, String)

Retourne une chaîne qui représente la date et l’heure spécifiées dans le fuseau horaire donné, conformément au modèle que le formateur utilise actuellement.

S’applique à

Voir aussi