Condividi tramite


DateTimeFormatter Classe

Definizione

Formatta date e ore.

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
Ereditarietà
Object Platform::Object IInspectable DateTimeFormatter
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Utilizzare la classe DateTimeFormatter per formattare una data.

// 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);

Grammatica del modelloLa grammatica seguente definisce ciò che viene accettato per un modello:

<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"

Grammatica del modelloLa grammatica seguente definisce ciò che viene accettato per un modello:

<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"

Commenti

Nota

Questa API viene aggiornata per supportare la modifica dell'era giapponese di maggio 2019. Se l'applicazione supporta il calendario giapponese, è necessario verificare che gestisca correttamente la nuova era. Per altre informazioni, vedere Preparare l'applicazione per la modifica dell'era giapponese .

Nota

Se l'app passa tag di lingua usati in questa classe a qualsiasi funzione di supporto per il linguaggio nazionale , deve prima convertire i tag chiamando ResolveLocaleName.

Alcuni costruttori per DateTimeFormatter accettano un parametro di stringa formatTemplate che specifica i componenti richiesti da formattare. Questo parametro può essere un modello di formato o un modello di formato. I modelli di formato sono utili per usare e fornire la formattazione tipica per la lingua, l'orologio e il calendario specificati. I modelli di formato offrono un maggiore controllo dell'output rispetto ai modelli di formato. Se è necessaria la formattazione non standard, usare i modelli di formato anziché i modelli.

In un modello di formato specificare i componenti (ora, data, giorno della settimana e così via) da includere nell'output formattato. Il formattatore formatta i componenti in base alla lingua, all'orologio e al calendario specificati. L'ordine dei componenti nel modello non è rilevante; il formattatore ordina i componenti in base all'ordine indicato nella lingua del modello di formato seguente.

Nella tabella seguente sono elencati alcuni modelli di uso comune. Nei modelli con più componenti, il componente può essere una delle varianti di componente supportate e i componenti possono essere in qualsiasi ordine. Ad esempio, "dayofweek.full year month.numeric day" è supportato. Vedere di seguito, dopo gli esempi, per la grammatica che definisce modelli validi.

Importante

Non è possibile combinare arbitrariamente i componenti e ottenere necessariamente un modello valido. Gli unici modelli validi sono quelli definiti dalla grammatica fornita.

Modello
longdate
shortdate
longtime
shorttime
dayofweek
dayofweek.full
dayofweek.abbreviato
day
month
month.full
month.abbreviated
month.numeric
anno
year.full
year.abbreviated
dayofweek giorno mese anno
dayofweek giorno mese
giorno mese anno
giorno mese
mese anno
hour
minute
second
ora minuto secondo
hour minute
timezone
timezone.full
timezone.abbreviato
year month day hour

La tabella seguente mostra l'output di esempio dei formattatori creati con vari valori di modello, lingua e orologio. La colonna "Modello equivalente" fornisce un modello che produce lo stesso output del modello.

ModelloLinguaggioOrologioOutputModello equivalente
longdateit-IT<non specificato>Lunedì 2 settembre 2013{dayofweek.full}, {month.full} {day.integer}, {year.full}
longdatefr-FR<non specificato>lundi 2 settembre 2013{dayofweek.full} {day.integer} {month.full} {year.full} {year.full}
shortdateit-IT<non specificato>9‎/‎2‎/‎2013{month.integer}/{day.integer}/{year.full}
shortdatefr-FR<non specificato>02‎/‎09‎/‎2013{day.integer(2)}/{month.integer(2)}/{year.full}
giornoofweek mese giornoit-IT<non specificato>Lunedì 2 settembre{dayofweek.full}, {month.full} {day.integer}
mese giorno di giornoofweekit-IT<non specificato>Lunedì 2 settembre{dayofweek.full}, {month.full} {day.integer}
molto tempoit-IT<non specificato>6:01:24{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated}
molto tempoit-IT24HourClock‎17‎:‎32‎:‎45{hour.integer}:{minute.integer(2)}:{second.integer(2)}
molto tempofr-FR<non specificato>17‎:‎32‎:‎45{hour.integer(2)}:{minute.integer(2)}:{second.integer(2)}
shorttimeit-IT<non specificato>6:01 AM{hour.integer}:{minute.integer(2)} {period.abbreviated}
shorttimeit-IT24HourClock17‎:‎32{hour.integer}:{minute.integer(2)}
shorttimefr-FR<non specificato>17‎:‎32{hour.integer(2)}:{minute.integer(2)}

I modelli di formato sono costituiti da una stringa letterale con campi delimitati da parentesi graffe, ad esempio "{day.numeric}/{month.numeric}/{year.full}". Nella tabella seguente sono elencati alcuni campi comunemente usati. Vedere di seguito, dopo gli esempi, per la grammatica che definisce modelli validi.

Importante

Non è possibile combinare arbitrariamente i campi e ottenere necessariamente un modello valido. Gli unici modelli validi sono quelli definiti dalla grammatica specificata.

Campo Modello di formato
{openbrace}
{closebrace}
{dayofweek.solo.<type>} dove <il tipo> è full/abbreviato/abbreviato(n)
{dayofweek.<type>} dove <il tipo> è full/abbreviato/abbreviato(n)
{giorno.<type>} dove <il tipo> è integer/integer(n)
{mese.<type>} dove <il tipo> è completo/abbreviato/abbreviato(n) / integer/integer(n)
{month.solo.<type>} dove <il tipo> è full/abbreviato/abbreviato(n)
{anno.<type>} dove <il tipo> è full/abbreviato/abbreviato(n)
{era.<type>} dove <il tipo> è full/abbreviato/abbreviato(n)
{ora.<type>} dove <il tipo> è integer/integer(n)
{periodo.<type>} dove <il tipo> è full/abbreviato/abbreviato(n)
{minute.<type>} dove <il tipo> è integer/integer(n)
{secondo.<type>} dove <il tipo> è integer/integer(n)
{fuso orario.<type>} dove <il tipo> è full/abbreviato/abbreviato(n)

Nota

  • Usare {openbrace} o {closebrace} per specificare che "{" o "}" viene visualizzato come parte della stringa letterale.
  • solo specifica il modulo autonomo. Per le lingue con distinzione tra maiuscole e minuscole, il caso genitivo è il caso non contrassegnato. Per ottenere il caso nominativo, usare solo.
  • integer(2) per il quinto giorno del mese (ad esempio) è "05", mentre integer(1) produce "5". integer produce la migliore n per una determinata combinazione di linguaggio/calendario.
  • Per anni, il totale produce tutte le cifre ("2013"). abbreviato è sinonimo di abbreviato(2), che è l'anno a 2 cifre per il calendario gregoriano ("13"). Altri calendari possono eventualmente usare qualcos'altro come impostazione predefinita. È stato mantenuto abbreviato per avere la semantica ottimale per una determinata combinazione di linguaggio/calendario. abbreviato(n) viene troncato alle cifre n meno significative (ad esempio, 2013 con n =1 è "3").

La tabella seguente mostra l'output di esempio dei formattatori creati con vari valori di modello, lingua e orologio.

ModelloLinguaggioOrologioOutput
{dayofweek.full}, {month.full} {day.integer}, {year.full}it-IT<non specificato>Lunedì 2 settembre 2013
{dayofweek.full}, {day.integer(2)} {month.full}, {year.full}fr-FR<non specificato>lundi, 02 settembre 2013
{month.integer}/{day.integer}/{year.full}it-IT<non specificato>9/‎2/2013
{month.integer}/{day.integer}/{year.abbreviated}it-IT<non specificato>9/‎2/13
{month.integer(2)}/{day.integer(2)}/{year.abbreviated}it-IT<non specificato>09/‎02/13
{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated}it-IT<non specificato>6:01:24
{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated}it-IT24HourClock17:32:45

Costruttori

DateTimeFormatter(HourFormat, MinuteFormat, SecondFormat)

Crea un oggetto DateTimeFormatter inizializzato con formati hour, minute e second.

DateTimeFormatter(String)

Crea un oggetto DateTimeFormatter inizializzato da una stringa di modello di formato.

DateTimeFormatter(String, IIterable<String>)

Crea un oggetto DateTimeFormatter inizializzato da una stringa di modello di formato e un elenco di lingue.

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

Crea un oggetto DateTimeFormatter inizializzato da una stringa di modello di formato, un elenco di lingue, un'area geografica, un calendario e un orologio.

DateTimeFormatter(YearFormat, MonthFormat, DayFormat, DayOfWeekFormat)

Crea un oggetto DateTimeFormatter inizializzato con formati anno, mese, giorno e giorno della settimana.

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

Crea un oggetto DateTimeFormatter inizializzato con i formati anno, mese, giorno, giorno della settimana, ora, minuto e secondo e un elenco di lingue.

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

Crea un oggetto DateTimeFormatter con tutti i formati e gli identificatori specificati.

Proprietà

Calendar

Ottiene il calendario utilizzato per la formattazione delle date.

Clock

Ottiene l'orologio utilizzato durante la formattazione.

GeographicRegion

Ottiene o imposta l'area utilizzata per la formattazione di date e ore.

IncludeDay

Ottiene DayFormat nel modello.

IncludeDayOfWeek

Ottiene dayOfWeekFormat nel modello.

IncludeHour

Ottiene HourFormat nel modello.

IncludeMinute

Ottiene MinuteFormat nel modello.

IncludeMonth

Ottiene MonthFormat nel modello.

IncludeSecond

Ottiene secondFormat nel modello.

IncludeYear

Ottiene YearFormat nel modello.

Languages

Ottiene l'elenco di priorità degli identificatori di lingua utilizzati durante la formattazione di date e ore.

LongDate

Ottiene l'oggetto DateTimeFormatter che formatta le date in base alla scelta del modello di data estesa dell'utente.

LongTime

Ottiene l'oggetto DateTimeFormatter che formatta le ore in base alla scelta del modello di tempo lungo dell'utente.

NumeralSystem

Ottiene o imposta il sistema di numerazione utilizzato per formattare date e ore.

Patterns

Ottiene i modelli corrispondenti a questo modello utilizzati durante la formattazione di date e ore.

ResolvedGeographicRegion

Ottiene l'area geografica utilizzata più di recente per formattare date e ore.

ResolvedLanguage

Ottiene la lingua utilizzata più di recente per formattare date e ore.

ShortDate

Ottiene l'oggetto DateTimeFormatter che formatta le date in base alla scelta del modello di data breve dell'utente.

ShortTime

Ottiene l'oggetto DateTimeFormatter che formatta le ore in base al modello di tempo breve scelto dall'utente.

Template

Ottiene una rappresentazione di stringa di questo modello di formato.

Metodi

Format(DateTime)

Restituisce una rappresentazione di stringa della data e dell'ora specificate.

Format(DateTime, String)

Restituisce una stringa che rappresenta la data e l'ora specificati nel fuso orario specificato, conforme al modello utilizzato dal formattatore.

Si applica a

Vedi anche