Cadenas con formato de fecha y hora estándar
Una cadena de formato de fecha y hora estándar usa un único especificador de formato para definir la representación de texto de un valor de fecha y hora. Cualquier cadena con formato de fecha y hora que contenga más de un carácter, incluido un espacio en blanco, se interpreta como una cadena con formato de fecha y hora personalizado; para obtener más información, vea Cadenas de formato de fecha y hora personalizadas. Una cadena de formato estándar o personalizado se puede usar de dos maneras:
Para definir la cadena resultante una operación de formato.
Para definir la representación de texto de un valor de fecha y hora que se puede convertir en un valor DateTime o DateTimeOffset mediante una operación de análisis.
Las cadenas con formato de fecha y hora estándar se pueden utilizar tanto con valores DateTime como con valores DateTimeOffset.
Sugerencia |
---|
Puede descargar la utilidad de formato, una aplicación que permite aplicar cadenas de formato a valores numéricos o de fecha y hora y muestra la cadena de resultado. |
En la siguiente tabla se describen los especificadores de formato de fecha y hora estándar. A menos que se indique lo contrario, un determinado especificador de formato de fecha y hora estándar genera una representación de cadena idéntica independientemente de que se use con un valor DateTime o DateTimeOffset. Vea la sección Notas para obtener información adicional sobre cómo usar cadenas de formato de fecha y hora estándar.
Especificador de formato |
Descripción |
Ejemplos |
---|---|---|
"d" |
Modelo de fecha corta. Más información: El especificador de formato de fecha corta ("d"). |
6/15/2009 1:45:30 PM -> 6/15/2009 (en-US) 6/15/2009 1:45:30 PM -> 15/06/2009 (fr-FR) 6/15/2009 1:45:30 PM -> 2009/06/15 (ja-JP) |
"D" |
Modelo de fecha larga. Más información: El especificador de formato de fecha larga ("D"). |
6/15/2009 1:45:30 PM -> Monday, June 15, 2009 (en-US) 6/15/2009 1:45:30 PM -> 15 июня 2009 г. (ru-RU) 6/15/2009 1:45:30 PM -> Montag, 15. Juni 2009 (de-DE) |
"f" |
Modelo de fecha y hora completa (hora corta). Más información: El especificador de formato de fecha completa y hora corta ("f"). |
6/15/2009 1:45:30 PM -> Monday, June 15, 2009 1:45 PM (en-US) 6/15/2009 1:45:30 PM -> den 15 juni 2009 13:45 (sv-SE) 6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 1:45 μμ (el-GR) |
"F" |
Modelo de fecha y hora completa (hora larga). Más información: El especificador de formato de fecha completa y hora larga ("F"). |
6/15/2009 1:45:30 PM -> Monday, June 15, 2009 1:45:30 PM (en-US) 6/15/2009 1:45:30 PM -> den 15 juni 2009 13:45:30 (sv-SE) 6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 1:45:30 μμ (el-GR) |
"g" |
Modelo de fecha y hora general (hora corta). Más información: El especificador de formato de fecha general y hora corta ("g"). |
6/15/2009 1:45:30 PM -> 6/15/2009 1:45 PM (en-US) 6/15/2009 1:45:30 PM -> 15/06/2009 13:45 (es-ES) 6/15/2009 1:45:30 PM -> 2009/6/15 13:45 (zh-CN) |
"G" |
Modelo de fecha y hora general (hora larga). Más información: El especificador de formato de fecha general y hora larga ("G"). |
6/15/2009 1:45:30 PM -> 6/15/2009 1:45:30 PM (en-US) 6/15/2009 1:45:30 PM -> 15/06/2009 13:45:30 (es-ES) 6/15/2009 1:45:30 PM -> 2009/6/15 13:45:30 (zh-CN) |
"M", "m" |
Modelo de mes/día. Más información: El especificador de formato de mes ("M", "m"). |
6/15/2009 1:45:30 PM -> June 15 (en-US) 6/15/2009 1:45:30 PM -> 15. juni (da-DK) 6/15/2009 1:45:30 PM -> 15 Juni (id-ID) |
"O", "o" |
Modelo de fecha y hora de ida y vuelta. Más información: El especificador de formato de operación de ida y vuelta ("O", "o"). |
6/15/2009 1:45:30 PM -> 2009-06-15T13:45:30.0900000 |
"R", "r" |
Modelo RFC1123. Más información: El especificador de formato RFC1123 ("R", "r"). |
6/15/2009 1:45:30 PM -> Mon, 15 Jun 2009 20:45:30 GMT |
"s" |
Modelo de fecha y hora que se puede ordenar. Más información: El especificador de formato que se puede ordenar ("s"). |
6/15/2009 1:45:30 PM -> 2009-06-15T13:45:30 |
"t" |
Modelo de hora corta. Más información: El especificador de formato de hora corta ("t"). |
6/15/2009 1:45:30 PM -> 1:45 PM (en-US) 6/15/2009 1:45:30 PM -> 13:45 (hr-HR) 6/15/2009 1:45:30 PM -> 01:45 م (ar-EG) |
"T" |
Modelo de hora larga. Más información: El especificador de formato de hora larga ("T"). |
6/15/2009 1:45:30 PM -> 1:45:30 PM (en-US) 6/15/2009 1:45:30 PM -> 13:45:30 (hr-HR) 6/15/2009 1:45:30 PM -> 01:45:30 م (ar-EG) |
"u" |
Modelo de fecha y hora universal que se puede ordenar. Más información: El especificador de formato universal que se puede ordenar ("u"). |
6/15/2009 1:45:30 PM -> 2009-06-15 20:45:30Z |
"U" |
Modelo de fecha y hora completa universal. Más información: El especificador de formato completo universal ("U"). |
6/15/2009 1:45:30 PM -> Monday, June 15, 2009 8:45:30 PM (en-US) 6/15/2009 1:45:30 PM -> den 15 juni 2009 20:45:30 (sv-SE) 6/15/2009 1:45:30 PM -> Δευτέρα, 15 Ιουνίου 2009 8:45:30 μμ (el-GR) |
"Y", "y" |
Modelo de mes y año. Más información: El especificador de formato de mes y año ("Y"). |
6/15/2009 1:45:30 PM -> June, 2009 (en-US) 6/15/2009 1:45:30 PM -> juni 2009 (da-DK) 6/15/2009 1:45:30 PM -> Juni 2009 (id-ID) |
Cualquier otro carácter único |
Especificador desconocido. |
Produce una excepción FormatException en tiempo de ejecución. |
Cómo funcionan las cadenas con formato estándar
En una operación de formato, una cadena de formato estándar es simplemente un alias de una cadena con formato personalizado. La ventaja de usar un alias para referirse a una cadena de formato personalizado es que, aunque el alias permanece invariable, la propia cadena de formato personalizado puede variar. Esto es importante, porque las representaciones de cadena de valores de fecha y hora suelen variar con las referencias culturales. Por ejemplo, la cadena de formato estándar "d" indica que un valor de fecha y hora se va a mostrar utilizando un modelo de fecha corta. En la referencia cultural de todos los idiomas, este modelo es "MM/dd/aaaa". En la referencia cultural fr-FR, es "dd/MM/aaaa". En la referencia cultural ja-JP, es "aaaa/MM/dd."
Si una cadena con formato estándar en una operación de formato se asigna a una cadena con formato personalizado de una referencia cultural específica, la aplicación puede definir la referencia cultural concreta cuyas cadenas con formato personalizado se usan de uno de los modos siguientes:
Puede utilizar la referencia cultural predeterminada (o la actual). En el ejemplo siguiente se muestra una fecha con el formato de fecha abreviado de la referencia cultural. En este caso, la referencia cultural actual es en-US.
' Display using current (en-us) culture's short date format Dim thisDate As Date = #03/15/2008# Console.WriteLine(thisDate.ToString("d")) ' Displays 3/15/2008
// Display using current (en-us) culture's short date format DateTime thisDate = new DateTime(2008, 3, 15); Console.WriteLine(thisDate.ToString("d")); // Displays 3/15/2008
Puede pasar un objeto CultureInfo que represente la referencia cultural cuyo formato se va a usar a un método que tenga un parámetro IFormatProvider. En el ejemplo siguiente se muestra una fecha con el formato de fecha abreviado de la referencia cultural pt-BR.
' Display using pt-BR culture's short date format Dim thisDate As Date = #03/15/2008# Dim culture As New CultureInfo("pt-BR") Console.WriteLine(thisDate.ToString("d", culture)) ' Displays 15/3/2008
// Display using pt-BR culture's short date format DateTime thisDate = new DateTime(2008, 3, 15); CultureInfo culture = new CultureInfo("pt-BR"); Console.WriteLine(thisDate.ToString("d", culture)); // Displays 15/3/2008
Puede pasar un objeto DateTimeFormatInfo que proporcione información sobre el formato a un método que tenga un parámetro IFormatProvider. En el ejemplo siguiente se muestra una fecha con el formato de fecha abreviado de un objeto DateTimeFormatInfo en la referencia cultural hr-HR.
' Display using date format information from hr-HR culture Dim thisDate As Date = #03/15/2008# Dim fmt As DateTimeFormatInfo = (New CultureInfo("hr-HR")).DateTimeFormat Console.WriteLine(thisDate.ToString("d", fmt)) ' Displays 15.3.2008
// Display using date format information from hr-HR culture DateTime thisDate = new DateTime(2008, 3, 15); DateTimeFormatInfo fmt = (new CultureInfo("hr-HR")).DateTimeFormat; Console.WriteLine(thisDate.ToString("d", fmt)); // Displays 15.3.2008
En algunos casos, la cadena con formato estándar actúa como la abreviatura correspondiente de una cadena con formato personalizado más larga que es invariable. Hay cuatro cadenas de formato estándar que pertenecen a esta categoría: "O" (o "o"), "R" (o "r"), "s" y "u". Estas cadenas se corresponden con las cadenas de formato personalizado definidas en la referencia cultural de todos los idiomas. Generan representaciones de cadena de valores de fecha y hora que están pensados para que sean idénticos en todas las referencias culturales. En la tabla siguiente se proporciona información sobre estas cuatro cadenas de formato de fecha y hora estándar.
Cadena con formato estándar |
Se define en la propiedad DateTimeFormatInfo.InvariantInfo |
Cadena con formato personalizado |
---|---|---|
"O" u "o" |
Ninguno |
yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzz |
"R" o "r" |
ddd, dd MMM yyyy HH':'mm':'ss 'GMT' |
|
"s" |
yyyy'-'MM'-'dd'T'HH':'mm':'ss |
|
"u" |
yyyy'-'MM'-'dd HH':'mm':'ss'Z' |
Las cadenas de formato estándar también se pueden usar en operaciones de análisis con los métodos DateTime.ParseExact o DateTimeOffset.ParseExact, que necesitan que una cadena de entrada se ajuste exactamente a un modelo determinado para que la operación de análisis se realice correctamente. Muchas cadenas de formato estándar se asignan a varias cadenas de formato personalizado, por lo que un valor de fecha y hora se pueden representar en diversos formatos y la operación de análisis todavía se realizará correctamente. Puede determinar la cadena o las cadenas con formato personalizado correspondientes a una cadena con formato estándar llamando al método DateTimeFormatInfo.GetAllDateTimePatterns(Char). En el ejemplo siguiente se muestran las cadenas con formato personalizado que se asignan a la cadena de formato estándar "d" (modelo de fecha corta).
Imports System.Globalization
Module Example
Public Sub Main()
Console.WriteLine("'d' standard format string:")
For Each customString In DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns("d"c)
Console.WriteLine(" {0}", customString)
Next
End Sub
End Module
' The example displays the following output:
' 'd' standard format string:
' M/d/yyyy
' M/d/yy
' MM/dd/yy
' MM/dd/yyyy
' yy/MM/dd
' yyyy-MM-dd
' dd-MMM-yy
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
Console.WriteLine("'d' standard format string:");
foreach (var customString in DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns('d'))
Console.WriteLine(" {0}", customString);
}
}
// The example displays the following output:
// 'd' standard format string:
// M/d/yyyy
// M/d/yy
// MM/dd/yy
// MM/dd/yyyy
// yy/MM/dd
// yyyy-MM-dd
// dd-MMM-yy
En las próximas secciones se describen los especificadores de formato estándar para los valores DateTimeOffset y DateTime.
El especificador de formato de fecha corta ("d")
El especificador de formato estándar "d" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.ShortDatePattern de una referencia cultural concreta. Por ejemplo, la cadena de formato personalizado devuelta por la propiedad ShortDatePattern de la referencia cultural de todos los idiomas es "MM/dd/yyyy".
En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que controlan el formato de la cadena devuelta.
Propiedad |
Descripción |
---|---|
Define el formato global de la cadena de resultado. |
|
Define la cadena que separa los componentes de año, mes y día de una fecha. |
En el ejemplo siguiente se usa el especificador de formato "d" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008#
Console.WriteLine(date1.ToString("d", DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008
Console.WriteLine(date1.ToString("d", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays 4/10/2008
Console.WriteLine(date1.ToString("d", _
CultureInfo.CreateSpecificCulture("en-NZ")))
' Displays 10/04/2008
Console.WriteLine(date1.ToString("d", _
CultureInfo.CreateSpecificCulture("de-DE")))
' Displays 10.04.2008
DateTime date1 = new DateTime(2008,4, 10);
Console.WriteLine(date1.ToString("d", DateTimeFormatInfo.InvariantInfo));
// Displays 04/10/2008
Console.WriteLine(date1.ToString("d",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays 4/10/2008
Console.WriteLine(date1.ToString("d",
CultureInfo.CreateSpecificCulture("en-NZ")));
// Displays 10/04/2008
Console.WriteLine(date1.ToString("d",
CultureInfo.CreateSpecificCulture("de-DE")));
// Displays 10.04.2008
Volver a la tabla
El especificador de formato de fecha larga ("D")
El especificador de formato estándar "D" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.LongDatePattern actual. Por ejemplo, la cadena de formato personalizado para la referencia cultural de todos los idiomas es "dddd, dd MMMM yyyy".
En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que controlan el formato de la cadena devuelta.
Propiedad |
Descripción |
---|---|
Define el formato global de la cadena de resultado. |
|
Define los nombres de días traducidos que pueden aparecer en la cadena de resultado. |
|
Define los nombres de meses traducidos que pueden aparecer en la cadena de resultado. |
En el ejemplo siguiente se usa el especificador de formato "D" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008#
Console.WriteLine(date1.ToString("D", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008
Console.WriteLine(date1.ToString("D", _
CultureInfo.CreateSpecificCulture("pt-BR")))
' Displays quinta-feira, 10 de abril de 2008
Console.WriteLine(date1.ToString("D", _
CultureInfo.CreateSpecificCulture("es-MX")))
' Displays jueves, 10 de abril de 2008
DateTime date1 = new DateTime(2008, 4, 10);
Console.WriteLine(date1.ToString("D",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008
Console.WriteLine(date1.ToString("D",
CultureInfo.CreateSpecificCulture("pt-BR")));
// Displays quinta-feira, 10 de abril de 2008
Console.WriteLine(date1.ToString("D",
CultureInfo.CreateSpecificCulture("es-MX")));
// Displays jueves, 10 de abril de 2008
Volver a la tabla
El especificador de formato de fecha completa y hora corta ("f")
El especificador de formato estándar "f" representa una combinación de los modelos de fecha larga ("D") y hora corta ("t"), separados por un espacio.
La información de formato de un objeto DateTimeFormatInfo específico afecta a la cadena de resultado. En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que pueden controlar el formato de la cadena devuelta. El especificador de formato personalizado devuelto por las propiedades DateTimeFormatInfo.ShortTimePattern y DateTimeFormatInfo.LongDatePattern de algunas referencias culturales quizás no use todas las propiedades.
Propiedad |
Descripción |
---|---|
Define el formato del componente de fecha de la cadena de resultado. |
|
Define el formato del componente de hora de la cadena de resultado. |
|
Define los nombres de días traducidos que pueden aparecer en la cadena de resultado. |
|
Define los nombres de meses traducidos que pueden aparecer en la cadena de resultado. |
|
Define la cadena que separa los componentes de hora, minutos y segundos de una hora. |
|
Define la cadena que indica las horas comprendidas desde medianoche hasta antes del mediodía en un reloj de 12 horas. |
|
Define la cadena que indica las horas comprendidas desde el mediodía hasta antes de medianoche en un reloj de 12 horas. |
En el ejemplo siguiente se usa el especificador de formato "f" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("f", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 6:30 AM
Console.WriteLine(date1.ToString("f", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays jeudi 10 avril 2008 06:30
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("f",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008 6:30 AM
Console.WriteLine(date1.ToString("f",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays jeudi 10 avril 2008 06:30
Volver a la tabla
El especificador de formato de fecha completa y hora larga ("F")
El especificador de formato estándar "F" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.FullDateTimePattern actual. Por ejemplo, la cadena de formato personalizado para la referencia cultural de todos los idiomas es "dddd, dd MMMM yyyy HH:mm:ss".
En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que pueden controlar el formato de la cadena devuelta. El especificador de formato personalizado devuelto por la propiedad FullDateTimePattern de algunas referencias culturales quizás no use todas las propiedades.
Propiedad |
Descripción |
---|---|
Define el formato global de la cadena de resultado. |
|
Define los nombres de días traducidos que pueden aparecer en la cadena de resultado. |
|
Define los nombres de meses traducidos que pueden aparecer en la cadena de resultado. |
|
Define la cadena que separa los componentes de hora, minutos y segundos de una hora. |
|
Define la cadena que indica las horas comprendidas desde medianoche hasta antes del mediodía en un reloj de 12 horas. |
|
Define la cadena que indica las horas comprendidas desde el mediodía hasta antes de medianoche en un reloj de 12 horas. |
En el ejemplo siguiente se usa el especificador de formato "F" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("F", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 6:30:00 AM
Console.WriteLine(date1.ToString("F", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays jeudi 10 avril 2008 06:30:00
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("F",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008 6:30:00 AM
Console.WriteLine(date1.ToString("F",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays jeudi 10 avril 2008 06:30:00
Volver a la tabla
El especificador de formato de fecha general y hora corta ("g")
El especificador de formato estándar "g" representa una combinación de los modelos de fecha corta ("d") y hora corta ("t"), separados por un espacio.
La información de formato de un objeto DateTimeFormatInfo específico afecta a la cadena de resultado. En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que pueden controlar el formato de la cadena devuelta. El especificador de formato personalizado devuelto por las propiedades DateTimeFormatInfo.ShortDatePattern y DateTimeFormatInfo.ShortTimePattern de algunas referencias culturales quizás no use todas las propiedades.
Propiedad |
Descripción |
---|---|
Define el formato del componente de fecha de la cadena de resultado. |
|
Define el formato del componente de hora de la cadena de resultado. |
|
Define la cadena que separa los componentes de año, mes y día de una fecha. |
|
Define la cadena que separa los componentes de hora, minutos y segundos de una hora. |
|
Define la cadena que indica las horas comprendidas desde medianoche hasta antes del mediodía en un reloj de 12 horas. |
|
Define la cadena que indica las horas comprendidas desde el mediodía hasta antes de medianoche en un reloj de 12 horas. |
En el ejemplo siguiente se usa el especificador de formato "g" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("g", _
DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008 06:30
Console.WriteLine(date1.ToString("g", _
CultureInfo.CreateSpecificCulture("en-us")))
' Displays 4/10/2008 6:30 AM
Console.WriteLine(date1.ToString("g", _
CultureInfo.CreateSpecificCulture("fr-BE")))
' Displays 10/04/2008 6:30
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("g",
DateTimeFormatInfo.InvariantInfo));
// Displays 04/10/2008 06:30
Console.WriteLine(date1.ToString("g",
CultureInfo.CreateSpecificCulture("en-us")));
// Displays 4/10/2008 6:30 AM
Console.WriteLine(date1.ToString("g",
CultureInfo.CreateSpecificCulture("fr-BE")));
// Displays 10/04/2008 6:30
Volver a la tabla
El especificador de formato de fecha general y hora larga ("G")
El especificador de formato estándar "G" representa una combinación de los modelos de fecha corta ("d") y hora larga ("T"), separados por un espacio.
La información de formato de un objeto DateTimeFormatInfo específico afecta a la cadena de resultado. En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que pueden controlar el formato de la cadena devuelta. El especificador de formato personalizado devuelto por las propiedades DateTimeFormatInfo.ShortDatePattern y DateTimeFormatInfo.LongTimePattern de algunas referencias culturales quizás no use todas las propiedades.
Propiedad |
Descripción |
---|---|
Define el formato del componente de fecha de la cadena de resultado. |
|
Define el formato del componente de hora de la cadena de resultado. |
|
Define la cadena que separa los componentes de año, mes y día de una fecha. |
|
Define la cadena que separa los componentes de hora, minutos y segundos de una hora. |
|
Define la cadena que indica las horas comprendidas desde medianoche hasta antes del mediodía en un reloj de 12 horas. |
|
Define la cadena que indica las horas comprendidas desde el mediodía hasta antes de medianoche en un reloj de 12 horas. |
En el ejemplo siguiente se usa el especificador de formato "G" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("G", _
DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008 06:30:00
Console.WriteLine(date1.ToString("G", _
CultureInfo.CreateSpecificCulture("en-us")))
' Displays 4/10/2008 6:30:00 AM
Console.WriteLine(date1.ToString("G", _
CultureInfo.CreateSpecificCulture("nl-BE")))
' Displays 10/04/2008 6:30:00
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("G",
DateTimeFormatInfo.InvariantInfo));
// Displays 04/10/2008 06:30:00
Console.WriteLine(date1.ToString("G",
CultureInfo.CreateSpecificCulture("en-us")));
// Displays 4/10/2008 6:30:00 AM
Console.WriteLine(date1.ToString("G",
CultureInfo.CreateSpecificCulture("nl-BE")));
// Displays 10/04/2008 6:30:00
Volver a la tabla
El especificador de formato de mes ("M", "m")
El especificador de formato estándar "M" o "m" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.MonthDayPattern actual. Por ejemplo, la cadena de formato personalizado para la referencia cultural de todos los idiomas es "MMMM dd".
En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que controlan el formato de la cadena devuelta.
Propiedad |
Descripción |
---|---|
Define el formato global de la cadena de resultado. |
|
Define los nombres de meses traducidos que pueden aparecer en la cadena de resultado. |
En el ejemplo siguiente se usa el especificador de formato "m" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("m", _
CultureInfo.CreateSpecificCulture("en-us")))
' Displays April 10
Console.WriteLine(date1.ToString("m", _
CultureInfo.CreateSpecificCulture("ms-MY")))
' Displays 10 April
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("m",
CultureInfo.CreateSpecificCulture("en-us")));
// Displays April 10
Console.WriteLine(date1.ToString("m",
CultureInfo.CreateSpecificCulture("ms-MY")));
// Displays 10 April
Volver a la tabla
El especificador de formato de operación de ida y vuelta ("O", "o")
El especificador de formato estándar "O" u "o" representa una cadena de formato de fecha y hora personalizado usando un modelo que conserva la información de la zona horaria. En los valores DateTime, este especificador de formato está diseñado para conservar los valores de fecha y hora junto con la propiedad DateTime.Kind en el texto. La cadena con formato se puede recuperar usando el método DateTime.Parse(String, IFormatProvider, DateTimeStyles) o DateTime.ParseExact si el parámetro styles está establecido en DateTimeStyles.RoundtripKind.
El especificador de formato estándar "O" u "o" corresponde a la cadena de formato personalizado "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK" para los valores DateTime y a "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz" para los valores DateTimeOffset. En esta cadena, los pares de comillas que delimitan los caracteres individuales (como guiones, signos de dos puntos y la letra "T") indican que el carácter individual es un literal que no se puede cambiar. Los apóstrofos no aparecen en la cadena de salida.
El modelo de este especificador refleja una norma definida (ISO 8601). Por consiguiente, siempre es el mismo, sea cual sea la referencia cultural utilizada o el proveedor de formato proporcionado. Las cadenas que se pasan al método Parse o ParseExact deben ajustarse exactamente a este modelo de formato personalizado o se producirá una excepción FormatException.
Cuando se utiliza este especificador de formato estándar, la operación de formato o análisis utiliza siempre la referencia cultural de todos los idiomas.
En el ejemplo siguiente se usa el especificador de formato "o" para mostrar un valor DateTime y un valor DateTimeOffset en un sistema de la zona horaria estándar del Pacífico de EE.UU.
Dim date1 As Date = #4/10/2008 6:30AM#
Dim dateOffset As New DateTimeOffset(date1, TimeZoneInfo.Local.GetUtcOFfset(date1))
Console.WriteLine(date1.ToString("o"))
' Displays 2008-04-10T06:30:00.0000000
Console.WriteLine(dateOffset.ToString("o"))
' Displays 2008-04-10T06:30:00.0000000-07:00
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
DateTimeOffset dateOffset = new DateTimeOffset(date1,
TimeZoneInfo.Local.GetUtcOffset(date1));
Console.WriteLine(date1.ToString("o"));
// Displays 2008-04-10T06:30:00.0000000
Console.WriteLine(dateOffset.ToString("o"));
// Displays 2008-04-10T06:30:00.0000000-07:00
En el ejemplo siguiente se usa el especificador de formato "o" para crear una cadena con formato y, a continuación, se restaura el valor de fecha y hora original llamando a un método Parse de fecha y hora.
' Round-trip DateTime values.
Dim originalDate, newDate As Date
Dim dateString As String
' Round-trip a local time.
originalDate = Date.SpecifyKind(#4/10/2008 6:30AM#, DateTimeKind.Local)
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
newDate, newDate.Kind)
' Round-trip a UTC time.
originalDate = Date.SpecifyKind(#4/12/2008 9:30AM#, DateTimeKind.Utc)
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
newDate, newDate.Kind)
' Round-trip time in an unspecified time zone.
originalDate = Date.SpecifyKind(#4/13/2008 12:30PM#, DateTimeKind.Unspecified)
dateString = originalDate.ToString("o")
newDate = Date.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind, _
newDate, newDate.Kind)
' Round-trip a DateTimeOffset value.
Dim originalDTO As New DateTimeOffset(#4/12/2008 9:30AM#, New TimeSpan(-8, 0, 0))
dateString = originalDTO.ToString("o")
Dim newDTO As DateTimeOffset = DateTimeOffset.Parse(dateString, Nothing, DateTimeStyles.RoundtripKind)
Console.WriteLine("Round-tripped {0} to {1}.", originalDTO, newDTO)
' The example displays the following output:
' Round-tripped 4/10/2008 6:30:00 AM Local to 4/10/2008 6:30:00 AM Local.
' Round-tripped 4/12/2008 9:30:00 AM Utc to 4/12/2008 9:30:00 AM Utc.
' Round-tripped 4/13/2008 12:30:00 PM Unspecified to 4/13/2008 12:30:00 PM Unspecified.
' Round-tripped 4/12/2008 9:30:00 AM -08:00 to 4/12/2008 9:30:00 AM -08:00.
// Round-trip DateTime values.
DateTime originalDate, newDate;
string dateString;
// Round-trip a local time.
originalDate = DateTime.SpecifyKind(new DateTime(2008, 4, 10, 6, 30, 0), DateTimeKind.Local);
dateString = originalDate.ToString("o");
newDate = DateTime.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind,
newDate, newDate.Kind);
// Round-trip a UTC time.
originalDate = DateTime.SpecifyKind(new DateTime(2008, 4, 12, 9, 30, 0), DateTimeKind.Utc);
dateString = originalDate.ToString("o");
newDate = DateTime.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind,
newDate, newDate.Kind);
// Round-trip time in an unspecified time zone.
originalDate = DateTime.SpecifyKind(new DateTime(2008, 4, 13, 12, 30, 0), DateTimeKind.Unspecified);
dateString = originalDate.ToString("o");
newDate = DateTime.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine("Round-tripped {0} {1} to {2} {3}.", originalDate, originalDate.Kind,
newDate, newDate.Kind);
// Round-trip a DateTimeOffset value.
DateTimeOffset originalDTO = new DateTimeOffset(2008, 4, 12, 9, 30, 0, new TimeSpan(-8, 0, 0));
dateString = originalDTO.ToString("o");
DateTimeOffset newDTO = DateTimeOffset.Parse(dateString, null, DateTimeStyles.RoundtripKind);
Console.WriteLine("Round-tripped {0} to {1}.", originalDTO, newDTO);
// The example displays the following output:
// Round-tripped 4/10/2008 6:30:00 AM Local to 4/10/2008 6:30:00 AM Local.
// Round-tripped 4/12/2008 9:30:00 AM Utc to 4/12/2008 9:30:00 AM Utc.
// Round-tripped 4/13/2008 12:30:00 PM Unspecified to 4/13/2008 12:30:00 PM Unspecified.
// Round-tripped 4/12/2008 9:30:00 AM -08:00 to 4/12/2008 9:30:00 AM -08:00.
Volver a la tabla
El especificador de formato RFC1123 ("R", "r")
El especificador de formato estándar "R" o "r" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.RFC1123Pattern. El modelo refleja una norma definida y la propiedad es de solo lectura. Por consiguiente, siempre es el mismo, sea cual fuere la referencia cultural utilizada o el proveedor de formato proporcionado. La cadena de formato personalizado es "ddd, dd MMM yyyy HH':'mm':'ss 'GMT'". Cuando se utiliza este especificador de formato estándar, la operación de formato o análisis utiliza siempre la referencia cultural de todos los idiomas.
Las siguientes propiedades del objeto DateTimeFormatInfo devuelto por la propiedad DateTimeFormatInfo.InvariantInfo que representa la referencia cultural de todos los idiomas afectan a la cadena de resultado.
Propiedad |
Descripción |
---|---|
Define el formato de la cadena de resultado. |
|
Define los nombres de días abreviados que pueden aparecer en la cadena de resultado. |
|
Define los nombres de meses abreviados que pueden aparecer en la cadena de resultado. |
Aunque la norma RFC 1123 expresa una hora según la hora universal coordinada (hora UTC), la operación de formato no modifica el valor del objeto DateTimeOffset o DateTime al que se está dando formato. Por tanto, la aplicación debe convertir el valor de fecha y hora a una hora UTC antes de realizar la operación de formato. Para realizar esta conversión, los valores DateTime pueden llamar al método DateTime.ToUniversalTime y los valores DateTimeOffset pueden llamar al método ToUniversalTime.
En el ejemplo siguiente se usa el especificador de formato "r" para mostrar un valor DateTime y un valor DateTimeOffset en un sistema de la zona horaria estándar del Pacífico de EE.UU.
Dim date1 As Date = #4/10/2008 6:30AM#
Dim dateOffset As New DateTimeOffset(date1, TimeZoneInfo.Local.GetUtcOFfset(date1))
Console.WriteLine(date1.ToUniversalTime.ToString("r"))
' Displays Thu, 10 Apr 2008 13:30:00 GMT
Console.WriteLine(dateOffset.ToUniversalTime.ToString("r"))
' Displays Thu, 10 Apr 2008 13:30:00 GMT
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
DateTimeOffset dateOffset = new DateTimeOffset(date1,
TimeZoneInfo.Local.GetUtcOffset(date1));
Console.WriteLine(date1.ToUniversalTime().ToString("r"));
// Displays Thu, 10 Apr 2008 13:30:00 GMT
Console.WriteLine(dateOffset.ToUniversalTime().ToString("r"));
// Displays Thu, 10 Apr 2008 13:30:00 GMT
Volver a la tabla
El especificador de formato que se puede ordenar ("s")
El especificador de formato estándar "s" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.SortableDateTimePattern. El modelo refleja una norma definida (ISO 8601) y la propiedad es de solo lectura. Por consiguiente, siempre es el mismo, sea cual fuere la referencia cultural utilizada o el proveedor de formato proporcionado. La cadena de formato personalizado es "yyyy'-'MM'-'dd'T'HH':'mm':'ss".
Cuando se utiliza este especificador de formato estándar, la operación de formato o análisis utiliza siempre la referencia cultural de todos los idiomas.
En el ejemplo siguiente se usa el especificador de formato "s" para mostrar un valor DateTime y un valor DateTimeOffset en un sistema de la zona horaria estándar del Pacífico de EE.UU.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("s"))
' Displays 2008-04-10T06:30:00
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("s"));
// Displays 2008-04-10T06:30:00
Volver a la tabla
El especificador de formato de hora corta ("t")
El especificador de formato estándar "t" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.ShortTimePattern actual. Por ejemplo, la cadena de formato personalizado para la referencia cultural de todos los idiomas es "HH:mm".
La información de formato de un objeto DateTimeFormatInfo específico afecta a la cadena de resultado. En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que pueden controlar el formato de la cadena devuelta. El especificador de formato personalizado devuelto por la propiedad DateTimeFormatInfo.ShortTimePattern de algunas referencias culturales quizás no use todas las propiedades.
Propiedad |
Descripción |
---|---|
Define el formato del componente de hora de la cadena de resultado. |
|
Define la cadena que separa los componentes de hora, minutos y segundos de una hora. |
|
Define la cadena que indica las horas comprendidas desde medianoche hasta antes del mediodía en un reloj de 12 horas. |
|
Define la cadena que indica las horas comprendidas desde el mediodía hasta antes de medianoche en un reloj de 12 horas. |
En el ejemplo siguiente se usa el especificador de formato "t" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("t", _
CultureInfo.CreateSpecificCulture("en-us")))
' Displays 6:30 AM
Console.WriteLine(date1.ToString("t", _
CultureInfo.CreateSpecificCulture("es-ES")))
' Displays 6:30
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("t",
CultureInfo.CreateSpecificCulture("en-us")));
// Displays 6:30 AM
Console.WriteLine(date1.ToString("t",
CultureInfo.CreateSpecificCulture("es-ES")));
// Displays 6:30
Volver a la tabla
El especificador de formato de hora larga ("T")
El especificador de formato estándar "T" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.LongTimePattern de una referencia cultural concreta. Por ejemplo, la cadena de formato personalizado para la referencia cultural de todos los idiomas es "HH:mm:ss".
En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que pueden controlar el formato de la cadena devuelta. El especificador de formato personalizado devuelto por la propiedad DateTimeFormatInfo.LongTimePattern de algunas referencias culturales quizás no use todas las propiedades.
Propiedad |
Descripción |
---|---|
Define el formato del componente de hora de la cadena de resultado. |
|
Define la cadena que separa los componentes de hora, minutos y segundos de una hora. |
|
Define la cadena que indica las horas comprendidas desde medianoche hasta antes del mediodía en un reloj de 12 horas. |
|
Define la cadena que indica las horas comprendidas desde el mediodía hasta antes de medianoche en un reloj de 12 horas. |
En el ejemplo siguiente se usa el especificador de formato "T" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("T", _
CultureInfo.CreateSpecificCulture("en-us")))
' Displays 6:30:00 AM
Console.WriteLine(date1.ToString("T", _
CultureInfo.CreateSpecificCulture("es-ES")))
' Displays 6:30:00
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("T",
CultureInfo.CreateSpecificCulture("en-us")));
// Displays 6:30:00 AM
Console.WriteLine(date1.ToString("T",
CultureInfo.CreateSpecificCulture("es-ES")));
// Displays 6:30:00
Volver a la tabla
El especificador de formato universal que se puede ordenar ("u")
El especificador de formato estándar "u" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.UniversalSortableDateTimePattern. El modelo refleja una norma definida y la propiedad es de solo lectura. Por consiguiente, siempre es el mismo, sea cual fuere la referencia cultural utilizada o el proveedor de formato proporcionado. La cadena de formato personalizado es "yyyy'-'MM'-'dd HH':'mm':'ss'Z'". Cuando se utiliza este especificador de formato estándar, la operación de formato o análisis utiliza siempre la referencia cultural de todos los idiomas.
Aunque la cadena de resultado debe expresar una hora como una hora universal coordinada (hora UTC), no se realiza ninguna conversión del valor DateTimeOffset o DateTime original durante la operación de formato. Por tanto, la aplicación debe convertir el valor de fecha y hora a una hora UTC antes de darle formato. Para realizar esta conversión, los valores DateTime pueden llamar al método DateTime.ToUniversalTime y los valores DateTimeOffset pueden llamar al método ToUniversalTime.
En el ejemplo siguiente se usa el especificador de formato "u" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToUniversalTime.ToString("u"))
' Displays 2008-04-10 13:30:00Z
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToUniversalTime().ToString("u"));
// Displays 2008-04-10 13:30:00Z
Volver a la tabla
El especificador de formato completo universal ("U")
El especificador de formato estándar "U" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.FullDateTimePattern de una referencia cultural especificada. El modelo es igual que el modelo de "F". Sin embargo, el valor DateTime se convierte automáticamente en una hora UTC antes de darle formato.
En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que pueden controlar el formato de la cadena devuelta. El especificador de formato personalizado devuelto por la propiedad FullDateTimePattern de algunas referencias culturales quizás no use todas las propiedades.
Propiedad |
Descripción |
---|---|
Define el formato global de la cadena de resultado. |
|
Define los nombres de días traducidos que pueden aparecer en la cadena de resultado. |
|
Define los nombres de meses traducidos que pueden aparecer en la cadena de resultado. |
|
Define la cadena que separa los componentes de hora, minutos y segundos de una hora. |
|
Define la cadena que indica las horas comprendidas desde medianoche hasta antes del mediodía en un reloj de 12 horas. |
|
Define la cadena que indica las horas comprendidas desde el mediodía hasta antes de medianoche en un reloj de 12 horas. |
El especificador de formato "U" no es compatible con el tipo DateTimeOffset y provoca una excepción FormatException si se usa para dar formato a un valor DateTimeOffset.
En el ejemplo siguiente se usa el especificador de formato "U" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 1:30:00 PM
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("sv-FI")))
' Displays den 10 april 2008 13:30:00
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("U",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Thursday, April 10, 2008 1:30:00 PM
Console.WriteLine(date1.ToString("U",
CultureInfo.CreateSpecificCulture("sv-FI")));
// Displays den 10 april 2008 13:30:00
Volver a la tabla
El especificador de formato de mes y año ("Y", "y")
El especificador de formato estándar "Y" o "y" representa una cadena de formato de fecha y hora personalizado que está definida por la propiedad DateTimeFormatInfo.YearMonthPattern de una referencia cultural especificada. Por ejemplo, la cadena de formato personalizado para la referencia cultural de todos los idiomas es "yyyy MMMM".
En la tabla siguiente se enumeran las propiedades del objeto DateTimeFormatInfo que controlan el formato de la cadena devuelta.
Propiedad |
Descripción |
---|---|
Define el formato global de la cadena de resultado. |
|
Define los nombres de meses traducidos que pueden aparecer en la cadena de resultado. |
En el ejemplo siguiente se usa el especificador de formato "y" para mostrar un valor de fecha y hora.
Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("Y", CultureInfo.CreateSpecificCulture("en-US")))
' Displays April, 2008
Console.WriteLine(date1.ToString("y", CultureInfo.CreateSpecificCulture("af-ZA")))
' Displays April 2008
DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("Y",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays April, 2008
Console.WriteLine(date1.ToString("y",
CultureInfo.CreateSpecificCulture("af-ZA")));
// Displays April 2008
Volver a la tabla
Notas
Configuración del Panel de control
Los valores de configuración del elemento Configuración regional y de idioma del Panel de control influyen en la cadena de resultado generada por una operación de formato. Estas configuraciones se utilizan para inicializar el objeto DateTimeFormatInfo asociado a la referencia cultural del subproceso actual, que proporciona valores que se utilizan para controlar el formato. Los equipos que usan configuraciones diferentes generarán cadenas de resultado distintas.
Asimismo, si se usa el constructor CultureInfo.CultureInfo(String) para crear instancias de un nuevo objeto CultureInfo que representa la misma referencia cultural que la referencia cultural del sistema actual, cualquier personalización establecida por el elemento Configuración regional y de idioma del Panel de control se aplicará al nuevo objeto CultureInfo. Puede usar el constructor CultureInfo.CultureInfo(String, Boolean) para crear un objeto CultureInfo que no refleje las personalizaciones de un sistema.
Propiedades de DateTimeFormatInfo
El formato se ve influenciado por las propiedades del objeto DateTimeFormatInfo actual, proporcionado implícitamente por la referencia cultural del subproceso actual o explícitamente por el parámetro IFormatProvider del método que invoca el formato. En el parámetro IFormatProvider, la aplicación debe especificar un objeto CultureInfo, que representa una referencia cultural, o un objeto DateTimeFormatInfo, que representa las convenciones de formato de fecha y hora de una determinada referencia cultural. Muchos de los especificadores de formato de fecha y hora estándar son alias de modelos de formato definidos en las propiedades del objeto DateTimeFormatInfo actual. La aplicación puede modificar el resultado generado por algunos especificadores de formato de fecha y hora estándar al cambiar los modelos de formato de fecha y hora correspondientes de la propiedad DateTimeFormatInfo apropiada.
Vea también
Conceptos
Cadenas de formato de fecha y hora personalizadas
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Julio de 2010 |
Agregada información sobre las cadenas con formato estándar en operaciones de análisis. |
Comentarios de los clientes. |
Marzo de 2011 |
Agregado un vínculo a la utilidad de formato. |
Mejora de la información. |