DateTimeFormatter Clase

Definición

Da formato a fechas y horas.

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
Herencia
Object Platform::Object IInspectable DateTimeFormatter
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

Use la clase DateTimeFormatter para dar formato a una fecha.

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

Gramática de patronesLa gramática siguiente define lo que se acepta para un patrón:

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

Gramática de plantillaLa gramática siguiente define lo que se acepta para una plantilla:

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

Comentarios

Nota

Esta API se está actualizando para admitir el cambio en la era japonesa de mayo de 2019. Si la aplicación admite el calendario japonés, debe validar que controla correctamente la nueva era. Consulte Preparación de la aplicación para el cambio en la era japonesa para obtener más información.

Nota

Si la aplicación pasa etiquetas de idioma usadas en esta clase a cualquier función de soporte técnico de idioma nacional , primero debe convertir las etiquetas llamando a ResolveLocaleName.

Algunos de los constructores de DateTimeFormatter toman un parámetro de cadena formatTemplate que especifica los componentes solicitados a los que se va a dar formato. Este parámetro puede ser una plantilla de formato o un patrón de formato. Las plantillas de formato son cómodas de usar y proporcionar formato que es típico para el idioma, el reloj y el calendario que especifique. Los patrones de formato proporcionan un mayor control de la salida que las plantillas de formato. Si necesita dar formato que no sea estándar, use patrones de formato en lugar de plantillas.

En una plantilla de formato, se especifican los componentes (hora, fecha, día de la semana, etc.) que desea incluir en la salida con formato. El formateador da formato a los componentes según corresponda para el idioma, reloj y calendario especificados. El orden de los componentes de la plantilla no importa; el formateador ordena los componentes según el orden que se muestra en el lenguaje de plantilla de formato siguiente.

Algunas plantillas usadas habitualmente se enumeran en la tabla siguiente. En plantillas con más de un componente, el componente puede ser cualquiera de las variaciones de componente admitidas y los componentes pueden estar en cualquier orden. Por ejemplo, se admite "dayofweek.full year month.numeric day". (Vea a continuación, después de los ejemplos, para la gramática que define plantillas válidas).

Importante

No se pueden combinar de forma arbitraria los componentes y obtener necesariamente una plantilla válida. Las únicas plantillas válidas son las definidas por la gramática proporcionada.

Plantilla
longdate
shortdate
Largo
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
día mes año
día mes
mes año
hora
minute
second
hora minuto segundo
hora minuto
timezone
timezone.full
timezone.abbreviated
year month day hour

En la tabla siguiente se muestra la salida de ejemplo de formateadores creados con varios valores de plantilla, idioma y reloj. La columna "Patrón equivalente" proporciona un patrón que genera la misma salida que la plantilla.

PlantillaLanguageRelojResultadosPatrón equivalente
longdatees-ES<no especificado>Lunes, 2 de septiembre de 2013{dayofweek.full}, {month.full} {day.integer}, {year.full}
longdatefr-FR<no especificado>lundi 2 sepembre 2013{dayofweek.full} {day.integer} {month.full} {year.full}
shortdatees-ES<no especificado>9‎/‎2‎/‎2013{month.integer}/{day.integer}/{year.full}
shortdatefr-FR<no especificado>02‎/‎09‎/‎2013{day.integer(2)}/{month.integer(2)}/{year.full}
dayofweek month dayes-ES<no especificado>Lunes, 2 de septiembre{dayofweek.full}, {month.full} {day.integer}
día del día del mes de la semanaes-ES<no especificado>Lunes, 2 de septiembre{dayofweek.full}, {month.full} {day.integer}
Largoes-ES<no especificado>6:01:24 a. m.{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated}
Largoes-ES24HourClock‎17‎:‎32‎:‎45{hour.integer}:{minute.integer(2)}:{second.integer(2)}
Largofr-FR<no especificado>17‎:‎32‎:‎45{hour.integer(2)}:{minute.integer(2)}:{second.integer(2)}
shorttimees-ES<no especificado>6:01 a. m.{hour.integer}:{minute.integer(2)} {period.abbreviated}
shorttimees-ES24HourClock17‎:‎32{hour.integer}:{minute.integer(2)}
shorttimefr-FR<no especificado>17‎:‎32{hour.integer(2)}:{minute.integer(2)}

Los patrones de formato se componen de una cadena literal con campos delimitados por llaves, como "{day.numeric}/{month.numeric}/{year.full}". Algunos campos usados habitualmente se enumeran en la tabla siguiente. (Vea a continuación, después de los ejemplos, para la gramática que define patrones válidos).

Importante

No se pueden combinar campos arbitrariamente y obtener necesariamente un patrón válido. Los únicos patrones válidos son los definidos por la gramática proporcionada.

Campo de patrón de formato
{openbrace}
{closebrace}
{dayofweek.solo.<type>} donde <type> es full/abbreviated/abbreviated(n)
{dayofweek.<type>} donde <type> es full/abbreviated/abbreviated(n)
{day.<type>} donde <type> es integer/integer(n)
{month.<type>} donde <type> es full / abbreviated / abbreviated(n) / integer / integer(n)
{month.solo.<type>} donde <type> es full/abbreviated/abbreviated(n)
{year.<type>} donde <type> es full/abbreviated/abbreviated(n)
{era.<type>} donde <type> es full/abbreviated/abbreviated(n)
{hora.<type>} donde <type> es integer/integer(n)
{period.<type>} donde <type> es full/abbreviated/abbreviated(n)
{minute.<type>} donde <type> es integer/integer(n)
{second.<type>} donde <type> es integer/integer(n)
{zona horaria.<type>} donde <type> es full/abbreviated/abbreviated(n)

Nota

  • Use {openbrace} o {closebrace} para especificar que "{" o "}" aparezca como parte de la cadena literal.
  • solo especifica el formulario independiente. En el caso de los idiomas con distinción de mayúsculas y minúsculas genitivas, el caso genitivo es el caso sin marcar. Para obtener el caso nominativo, use solo.
  • integer(2) para el quinto día del mes (por ejemplo) es "05", mientras que integer(1) produce "5". integer genera los mejores n para una combinación de idioma o calendario determinada.
  • Durante años, full produce todos los dígitos ("2013"). abreviado es sinónimo de abreviado(2), que es el año de 2 dígitos para el calendario gregoriano ("13"). (Otros calendarios pueden usar algo más como valor predeterminado; hemos seguido abreviado para tener la semántica de lo mejor para una combinación de idioma o calendario determinada). abbreviated(n) se trunca en los dígitos n menos significativos (por ejemplo, 2013 con n =1 es "3").

En la tabla siguiente se muestra la salida de ejemplo de los formateadores creados con varios valores de patrón, idioma y reloj.

PatrónLenguajeRelojOutput
{dayofweek.full}, {month.full} {day.integer}, {year.full}es-ES<no especificado>Lunes, 2 de septiembre de 2013
{dayofweek.full}, {day.integer(2)} {month.full}, {year.full}fr-FR<no especificado>lundi, 02 sepembre, 2013
{month.integer}/{day.integer}/{year.full}es-ES<no especificado>9/‎2/2013
{month.integer}/{day.integer}/{year.abbreviated}es-ES<no especificado>9/‎2/13
{month.integer(2)}/{day.integer(2)}/{year.abbreviated}es-ES<no especificado>09/‎02/13
{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated}es-ES<no especificado>6:01:24 a. m.
{hour.integer}:{minute.integer(2)}:{second.integer(2)} {period.abbreviated}es-ES24HourClock17:32:45

Constructores

DateTimeFormatter(HourFormat, MinuteFormat, SecondFormat)

Crea un objeto DateTimeFormatter que se inicializa con formatos de hora, minuto y segundo.

DateTimeFormatter(String)

Crea un objeto DateTimeFormatter que se inicializa mediante una cadena de plantilla de formato.

DateTimeFormatter(String, IIterable<String>)

Crea un objeto DateTimeFormatter que se inicializa mediante una cadena de plantilla de formato y una lista de idioma.

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

Crea un objeto DateTimeFormatter que se inicializa mediante una cadena de plantilla de formato, una lista de idioma, una región geográfica, un calendario y un reloj.

DateTimeFormatter(YearFormat, MonthFormat, DayFormat, DayOfWeekFormat)

Crea un objeto DateTimeFormatter que se inicializa con formatos year, month, day y day of week.

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

Crea un objeto DateTimeFormatter que se inicializa con los formatos year, month, day, day, day, hour, minute y second, y una lista de idiomas.

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

Crea un objeto DateTimeFormatter con todos los formatos e identificadores especificados.

Propiedades

Calendar

Obtiene el calendario que se usa al dar formato a fechas.

Clock

Obtiene el reloj que se usa al dar formato a las horas.

GeographicRegion

Obtiene o establece la región que se usa al dar formato a fechas y horas.

IncludeDay

Obtiene el DayFormat de la plantilla.

IncludeDayOfWeek

Obtiene dayOfWeekFormat en la plantilla.

IncludeHour

Obtiene hourFormat en la plantilla.

IncludeMinute

Obtiene el objeto MinuteFormat de la plantilla.

IncludeMonth

Obtiene monthFormat en la plantilla.

IncludeSecond

Obtiene el SecondFormat de la plantilla.

IncludeYear

Obtiene yearFormat en la plantilla.

Languages

Obtiene la lista de prioridades de los identificadores de idioma que se usan al dar formato a fechas y horas.

LongDate

Obtiene el objeto DateTimeFormatter que da formato a las fechas según la elección del patrón de fecha larga del usuario.

LongTime

Obtiene el objeto DateTimeFormatter que da formato a las horas según la elección del patrón de tiempo largo del usuario.

NumeralSystem

Obtiene o establece el sistema de numeración que se usa para dar formato a fechas y horas.

Patterns

Obtiene los patrones correspondientes a esta plantilla que se usan al dar formato a fechas y horas.

ResolvedGeographicRegion

Obtiene la región geográfica que se usó más recientemente para dar formato a fechas y horas.

ResolvedLanguage

Obtiene el idioma que se usó más recientemente para dar formato a fechas y horas.

ShortDate

Obtiene el objeto DateTimeFormatter que da formato a las fechas según la elección del patrón de fecha corta del usuario.

ShortTime

Obtiene el objeto DateTimeFormatter que da formato a las horas según la elección del patrón de tiempo corto del usuario.

Template

Obtiene una representación de cadena de esta plantilla de formato.

Métodos

Format(DateTime)

Devuelve una representación de cadena de la fecha y hora proporcionadas.

Format(DateTime, String)

Devuelve una cadena que representa la fecha y hora especificadas en la zona horaria especificada, conforme a la plantilla que el formateador está usando actualmente.

Se aplica a

Consulte también