Cadenas con formato de fecha y hora personalizadoCustom date and time format strings

Una cadena con formato de fecha y hora define la representación de texto de un valor DateTime o DateTimeOffset que es el resultado de una operación de formato.A date and time format string defines the text representation of a DateTime or DateTimeOffset value that results from a formatting operation. También puede definir la representación de un valor de fecha y hora que se necesite en una operación de análisis para convertir correctamente la cadena en una fecha y hora.It can also define the representation of a date and time value that is required in a parsing operation in order to successfully convert the string to a date and time. Una cadena de formato personalizado consta de uno o varios especificadores de formato de fecha y hora personalizado.A custom format string consists of one or more custom date and time format specifiers. Una cadena que no sea una cadena con formato de fecha y hora estándar se interpreta como una cadena con formato de fecha y hora personalizado.Any string that is not a standard date and time format string is interpreted as a custom date and time format string.

Sugerencia

Puede descargar la utilidad de formato, una aplicación que permite aplicar cadenas de formato a valores de fecha y hora o numéricos, y muestra la cadena de resultado.You can download the Formatting Utility, an application that enables you to apply format strings to either date and time or numeric values and displays the result string.

Las cadenas con formato de fecha y hora personalizado se pueden utilizar tanto con valores DateTime como con valores DateTimeOffset.Custom date and time format strings can be used with both DateTime and DateTimeOffset values.

Nota

Algunos de los ejemplos de C# de este artículo se ejecutan en el ejecutor de código en línea y área de juegos de Try.NET.Some of the C# examples in this article run in the Try.NET inline code runner and playground. Haga clic en el botón Ejecutar para ejecutar un ejemplo en una ventana interactiva.Select the Run button to run an example in an interactive window. Una vez que se ejecuta el código, puede modificar y ejecutar el código modificado si vuelve a hacer clic en Ejecutar.Once you execute the code, you can modify it and run the modified code by selecting Run again. El código modificado se ejecuta en la ventana interactiva o, si se produce un error en la compilación, en la ventana interactiva se muestran todos los mensajes de error del compilador de C#.The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

La zona horaria local del ejecutor de código en línea de Try.NET y del área de juegos es la hora universal coordinada o UTC.The local time zone of the Try.NET inline code runner and playground is Coordinated Universal Time, or UTC. Esto puede afectar al comportamiento y la salida de ejemplos que ilustran los tipos DateTime, DateTimeOffset y TimeZoneInfo y sus miembros.This may affect the behavior and the output of examples that illustrate the DateTime, DateTimeOffset, and TimeZoneInfo types and their members.

En operaciones de formato, las cadenas de formato de fecha y hora personalizado se pueden usar con el método ToString de una instancia de fecha y hora o con un método que admita formato compuesto.In formatting operations, custom date and time format strings can be used either with the ToString method of a date and time instance or with a method that supports composite formatting. En el ejemplo siguiente se muestran ambos usos.The following example illustrates both uses.

DateTime thisDate1 = new DateTime(2011, 6, 10);
Console.WriteLine("Today is " + thisDate1.ToString("MMMM dd, yyyy") + ".");
 
DateTimeOffset thisDate2 = new DateTimeOffset(2011, 6, 10, 15, 24, 16, 
                                              TimeSpan.Zero);
Console.WriteLine("The current date and time: {0:MM/dd/yy H:mm:ss zzz}", 
                   thisDate2); 
// The example displays the following output:
//    Today is June 10, 2011.
//    The current date and time: 06/10/11 15:24:16 +00:00
 Dim thisDate1 As Date = #6/10/2011#
 Console.WriteLine("Today is " + thisDate1.ToString("MMMM dd, yyyy") + ".")
 
 Dim thisDate2 As New DateTimeOffset(2011, 6, 10, 15, 24, 16, TimeSpan.Zero)
 Console.WriteLine("The current date and time: {0:MM/dd/yy H:mm:ss zzz}", 
                   thisDate2) 
 ' The example displays the following output:
'    Today is June 10, 2011.
'    The current date and time: 06/10/11 15:24:16 +00:00

En las operaciones de análisis, las cadenas de formato de fecha y hora personalizado se pueden usar con los métodos DateTime.ParseExact, DateTime.TryParseExact, DateTimeOffset.ParseExact y DateTimeOffset.TryParseExact.In parsing operations, custom date and time format strings can be used with the DateTime.ParseExact, DateTime.TryParseExact, DateTimeOffset.ParseExact, and DateTimeOffset.TryParseExact methods. Estos métodos necesitan que una cadena de entrada se ajuste exactamente a un modelo determinado para que la operación de análisis se realice correctamente.These methods require that an input string conforms exactly to a particular pattern for the parse operation to succeed. En el ejemplo siguiente se muestra una llamada al método DateTimeOffset.ParseExact(String, String, IFormatProvider) para analizar una fecha que debe incluir un día, un mes y un año de dos dígitos.The following example illustrates a call to the DateTimeOffset.ParseExact(String, String, IFormatProvider) method to parse a date that must include a day, a month, and a two-digit year.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] dateValues = { "30-12-2011", "12-30-2011", 
                              "30-12-11", "12-30-11" };
      string pattern = "MM-dd-yy";
      DateTime parsedDate;
      
      foreach (var dateValue in dateValues) {
         if (DateTime.TryParseExact(dateValue, pattern, null, 
                                   DateTimeStyles.None, out parsedDate))
            Console.WriteLine("Converted '{0}' to {1:d}.", 
                              dateValue, parsedDate);
         else
            Console.WriteLine("Unable to convert '{0}' to a date and time.", 
                              dateValue);
      }
   }
}
// The example displays the following output:
//    Unable to convert '30-12-2011' to a date and time.
//    Unable to convert '12-30-2011' to a date and time.
//    Unable to convert '30-12-11' to a date and time.
//    Converted '12-30-11' to 12/30/2011.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim dateValues() As String = { "30-12-2011", "12-30-2011", 
                                      "30-12-11", "12-30-11" }
      Dim pattern As String = "MM-dd-yy"
      Dim parsedDate As Date
      
      For Each dateValue As String In dateValues
         If DateTime.TryParseExact(dateValue, pattern, Nothing, 
                                   DateTimeStyles.None, parsedDate) Then
            Console.WriteLine("Converted '{0}' to {1:d}.", 
                              dateValue, parsedDate)
         Else
            Console.WriteLine("Unable to convert '{0}' to a date and time.", 
                              dateValue)
         End If                                                         
      Next
   End Sub
End Module
' The example displays the following output:
'    Unable to convert '30-12-2011' to a date and time.
'    Unable to convert '12-30-2011' to a date and time.
'    Unable to convert '30-12-11' to a date and time.
'    Converted '12-30-11' to 12/30/2011.

En la tabla siguiente se describen los especificadores de formato de fecha y hora personalizados, y se muestra la cadena de resultado producida por cada especificador de formato.The following table describes the custom date and time format specifiers and displays a result string produced by each format specifier. De forma predeterminada, las cadenas de resultado reflejan las convenciones de formato de la referencia cultural en-us.By default, result strings reflect the formatting conventions of the en-US culture. Si un especificador de formato determinado genera una cadena de resultado localizada, el ejemplo también indica la referencia cultural a la que se aplica dicha cadena.If a particular format specifier produces a localized result string, the example also notes the culture to which the result string applies. Para más información sobre cómo usar cadenas de formato de fecha y hora personalizado, vea la sección Notas.For more information about using custom date and time format strings, see the Notes section.

Especificador de formatoFormat specifier DescripciónDescription EjemplosExamples
"d""d" El día del mes, de 1 a 31.The day of the month, from 1 through 31.

Más información: Especificador de formato personalizado "d".More information: The "d" Custom Format Specifier.
2009-06-01T13:45:30 -> 12009-06-01T13:45:30 -> 1

2009-06-15T13:45:30 -> 152009-06-15T13:45:30 -> 15
"dd""dd" El día del mes, de 01 a 31.The day of the month, from 01 through 31.

Más información: Especificador de formato personalizado "dd".More information: The "dd" Custom Format Specifier.
2009-06-01T13:45:30 -> 012009-06-01T13:45:30 -> 01

2009-06-15T13:45:30 -> 152009-06-15T13:45:30 -> 15
"ddd""ddd" El nombre abreviado del día de la semana.The abbreviated name of the day of the week.

Más información: Especificador de formato personalizado "ddd".More information: The "ddd" Custom Format Specifier.
2009-06-15T13:45:30 -> Mon (en-US)2009-06-15T13:45:30 -> Mon (en-US)

2009-06-15T13:45:30 -> Пн (ru-RU)2009-06-15T13:45:30 -> Пн (ru-RU)

2009-06-15T13:45:30 -> lun.2009-06-15T13:45:30 -> lun. (fr-FR)(fr-FR)
"dddd""dddd" El nombre completo del día de la semana.The full name of the day of the week.

Más información: Especificador de formato personalizado "dddd".More information: The "dddd" Custom Format Specifier.
2009-06-15T13:45:30 -> Monday (en-US)2009-06-15T13:45:30 -> Monday (en-US)

2009-06-15T13:45:30 -> понедельник (ru-RU)2009-06-15T13:45:30 -> понедельник (ru-RU)

2009-06-15T13:45:30 -> lundi (fr-FR)2009-06-15T13:45:30 -> lundi (fr-FR)
"f""f" Las décimas de segundo de un valor de fecha y hora.The tenths of a second in a date and time value.

Más información: Especificador de formato personalizado "f".More information: The "f" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 62009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.05 -> 02009-06-15T13:45:30.05 -> 0
"ff""ff" Las centésimas de segundo de un valor de fecha y hora.The hundredths of a second in a date and time value.

Más información: Especificador de formato personalizado "ff".More information: The "ff" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 612009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> 002009-06-15T13:45:30.0050000 -> 00
"fff""fff" Los milisegundos de un valor de fecha y hora.The milliseconds in a date and time value.

Más información: Especificador de formato personalizado "fff".More information: The "fff" Custom Format Specifier.
6/15/2009 13:45:30.617 -> 6176/15/2009 13:45:30.617 -> 617

6/15/2009 13:45:30.0005 -> 0006/15/2009 13:45:30.0005 -> 000
"ffff""ffff" Las diezmilésimas de segundo de un valor de fecha y hora.The ten thousandths of a second in a date and time value.

Más información: Especificador de formato personalizado "ffff".More information: The "ffff" Custom Format Specifier.
2009-06-15T13:45:30.6175000 -> 61752009-06-15T13:45:30.6175000 -> 6175

2009-06-15T13:45:30.0000500 -> 00002009-06-15T13:45:30.0000500 -> 0000
"fffff""fffff" Las cienmilésimas de segundo de un valor de fecha y hora.The hundred thousandths of a second in a date and time value.

Más información: Especificador de formato personalizado "fffff".More information: The "fffff" Custom Format Specifier.
2009-06-15T13:45:30.6175400 -> 617542009-06-15T13:45:30.6175400 -> 61754

6/15/2009 13:45:30.000005 -> 000006/15/2009 13:45:30.000005 -> 00000
"ffffff""ffffff" Las millonésimas de segundo de un valor de fecha y hora.The millionths of a second in a date and time value.

Más información: Especificador de formato personalizado "ffffff".More information: The "ffffff" Custom Format Specifier.
2009-06-15T13:45:30.6175420 -> 6175422009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> 0000002009-06-15T13:45:30.0000005 -> 000000
"fffffff""fffffff" Las diezmillonésimas de segundo de un valor de fecha y hora.The ten millionths of a second in a date and time value.

Más información: Especificador de formato personalizado "fffffff".More information: The "fffffff" Custom Format Specifier.
2009-06-15T13:45:30.6175425 -> 61754252009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 00011502009-06-15T13:45:30.0001150 -> 0001150
"F""F" Si es distinto de cero, las décimas de segundo de un valor de fecha y hora.If non-zero, the tenths of a second in a date and time value.

Más información: Especificador de formato personalizado "F".More information: The "F" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 62009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.0500000 -> (ninguna salida)2009-06-15T13:45:30.0500000 -> (no output)
"FF""FF" Si es distinto de cero, las centésimas de segundo de un valor de fecha y hora.If non-zero, the hundredths of a second in a date and time value.

Más información: Especificador de formato personalizado "FF".More information: The "FF" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 612009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> (ninguna salida)2009-06-15T13:45:30.0050000 -> (no output)
"FFF""FFF" Si es distinto de cero, los milisegundos de un valor de fecha y hora.If non-zero, the milliseconds in a date and time value.

Más información: Especificador de formato personalizado "FFF".More information: The "FFF" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> 6172009-06-15T13:45:30.6170000 -> 617

2009-06-15T13:45:30.0005000 -> (ninguna salida)2009-06-15T13:45:30.0005000 -> (no output)
"FFFF""FFFF" Si es distinto de cero, las diezmilésimas de segundo de un valor de fecha y hora.If non-zero, the ten thousandths of a second in a date and time value.

Más información: Especificador de formato personalizado "FFFF".More information: The "FFFF" Custom Format Specifier.
2009-06-15T13:45:30.5275000 -> 52752009-06-15T13:45:30.5275000 -> 5275

2009-06-15T13:45:30.0000500 -> (ninguna salida)2009-06-15T13:45:30.0000500 -> (no output)
"FFFFF""FFFFF" Si es distinto de cero, las cienmilésimas de segundo de un valor de fecha y hora.If non-zero, the hundred thousandths of a second in a date and time value.

Más información: Especificador de formato personalizado "FFFFF".More information: The "FFFFF" Custom Format Specifier.
2009-06-15T13:45:30.6175400 -> 617542009-06-15T13:45:30.6175400 -> 61754

2009-06-15T13:45:30.0000050 -> (ninguna salida)2009-06-15T13:45:30.0000050 -> (no output)
"FFFFFF""FFFFFF" Si es distinto de cero, las millonésimas de segundo de un valor de fecha y hora.If non-zero, the millionths of a second in a date and time value.

Más información: Especificador de formato personalizado "FFFFFF".More information: The "FFFFFF" Custom Format Specifier.
2009-06-15T13:45:30.6175420 -> 6175422009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000050 -> (ninguna salida)2009-06-15T13:45:30.0000005 -> (no output)
"FFFFFFF""FFFFFFF" Si es distinto de cero, las diezmillonésimas de segundo de un valor de fecha y hora.If non-zero, the ten millionths of a second in a date and time value.

Más información: Especificador de formato personalizado "FFFFFFF".More information: The "FFFFFFF" Custom Format Specifier.
2009-06-15T13:45:30.6175425 -> 61754252009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 0001152009-06-15T13:45:30.0001150 -> 000115
"g", "gg""g", "gg" El período o la era.The period or era.

Más información: Especificador de formato personalizado "g" o "gg".More information: The "g" or "gg" Custom Format Specifier.
2009-06-15T13:45:30.6170000 -> A.D.2009-06-15T13:45:30.6170000 -> A.D.
"h""h" La hora, usando un reloj de 12 horas de 1 a 12.The hour, using a 12-hour clock from 1 to 12.

Más información: Especificador de formato personalizado "h".More information: The "h" Custom Format Specifier.
2009-06-15T01:45:30 -> 12009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 12009-06-15T13:45:30 -> 1
"hh""hh" La hora, usando un reloj de 12 horas de 01 a 12.The hour, using a 12-hour clock from 01 to 12.

Más información: Especificador de formato personalizado "hh".More information: The "hh" Custom Format Specifier.
2009-06-15T01:45:30 -> 012009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 012009-06-15T13:45:30 -> 01
"H""H" La hora, usando un reloj de 24 horas de 0 a 23.The hour, using a 24-hour clock from 0 to 23.

Más información: Especificador de formato personalizado "H".More information: The "H" Custom Format Specifier.
2009-06-15T01:45:30 -> 12009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 132009-06-15T13:45:30 -> 13
"HH""HH" La hora, usando un reloj de 24 horas de 00 a 23.The hour, using a 24-hour clock from 00 to 23.

Más información: Especificador de formato personalizado "HH".More information: The "HH" Custom Format Specifier.
2009-06-15T01:45:30 -> 012009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 132009-06-15T13:45:30 -> 13
"K""K" Información de la zona horaria.Time zone information.

Más información: Especificador de formato personalizado "K".More information: The "K" Custom Format Specifier.
Con valores DateTime:With DateTime values:

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

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

2009-06-15T13:45:30, Kind Local -> -07:00 (depende de la configuración del equipo local)2009-06-15T13:45:30, Kind Local -> -07:00 (depends on local computer settings)

Con valores DateTimeOffset:With DateTimeOffset values:

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

2009-06-15T08:45:30+00:00 --> +00:002009-06-15T08:45:30+00:00 --> +00:00
"m""m" Minutos, de 0 a 59.The minute, from 0 through 59.

Más información: Especificador de formato personalizado "m".More information: The "m" Custom Format Specifier.
2009-06-15T01:09:30 -> 92009-06-15T01:09:30 -> 9

2009-06-15T13:29:30 -> 292009-06-15T13:29:30 -> 29
"mm""mm" El minuto, de 00 a 59.The minute, from 00 through 59.

Más información: Especificador de formato personalizado "mm".More information: The "mm" Custom Format Specifier.
2009-06-15T01:09:30 -> 092009-06-15T01:09:30 -> 09

2009-06-15T01:45:30 -> 452009-06-15T01:45:30 -> 45
"M""M" El mes, de 1 a 12.The month, from 1 through 12.

Más información: Especificador de formato personalizado "M".More information: The "M" Custom Format Specifier.
2009-06-15T13:45:30 -> 62009-06-15T13:45:30 -> 6
"MM""MM" El mes, de 01 a 12.The month, from 01 through 12.

Más información: Especificador de formato personalizado "MM".More information: The "MM" Custom Format Specifier.
2009-06-15T13:45:30 -> 062009-06-15T13:45:30 -> 06
"MMM""MMM" El nombre abreviado del mes.The abbreviated name of the month.

Más información: Especificador de formato personalizado "MMM".More information: The "MMM" Custom Format Specifier.
2009-06-15T13:45:30 -> Jun (en-US)2009-06-15T13:45:30 -> Jun (en-US)

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

2009-06-15T13:45:30 -> Jun (zu-ZA)2009-06-15T13:45:30 -> Jun (zu-ZA)
"MMMM""MMMM" El nombre completo del mes.The full name of the month.

Más información: Especificador de formato personalizado "MMMM".More information: The "MMMM" Custom Format Specifier.
2009-06-15T13:45:30 -> June (en-US)2009-06-15T13:45:30 -> June (en-US)

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

2009-06-15T13:45:30 -> uJuni (zu-ZA)2009-06-15T13:45:30 -> uJuni (zu-ZA)
"s""s" El segundo, de 0 a 59.The second, from 0 through 59.

Más información: Especificador de formato personalizado "s".More information: The "s" Custom Format Specifier.
2009-06-15T13:45:09 -> 92009-06-15T13:45:09 -> 9
"ss""ss" El segundo, de 00 a 59.The second, from 00 through 59.

Más información: Especificador de formato personalizado "ss".More information: The "ss" Custom Format Specifier.
2009-06-15T13:45:09 -> 092009-06-15T13:45:09 -> 09
"t""t" El primer carácter del designador AM/PM.The first character of the AM/PM designator.

Más información: Especificador de formato personalizado "t".More information: The "t" Custom Format Specifier.
2009-06-15T13:45:30 -> P (en-US)2009-06-15T13:45:30 -> P (en-US)

2009-06-15T13:45:30 -> 午 (ja-JP)2009-06-15T13:45:30 -> 午 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR)2009-06-15T13:45:30 -> (fr-FR)
"tt""tt" El designador AM/PM.The AM/PM designator.

Más información: Especificador de formato personalizado "tt".More information: The "tt" Custom Format Specifier.
2009-06-15T13:45:30 -> PM (en-US)2009-06-15T13:45:30 -> PM (en-US)

2009-06-15T13:45:30 -> 午後 (ja-JP)2009-06-15T13:45:30 -> 午後 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR)2009-06-15T13:45:30 -> (fr-FR)
"y""y" El año, de 0 a 99.The year, from 0 to 99.

Más información: Especificador de formato personalizado "y".More information: The "y" Custom Format Specifier.
0001-01-01T00:00:00 -> 10001-01-01T00:00:00 -> 1

0900-01-01T00:00:00 -> 00900-01-01T00:00:00 -> 0

1900-01-01T00:00:00 -> 01900-01-01T00:00:00 -> 0

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

2019-06-15T13:45:30 -> 192019-06-15T13:45:30 -> 19
"yy""yy" El año, de 00 a 99.The year, from 00 to 99.

Más información: Especificador de formato personalizado "yy".More information: The "yy" Custom Format Specifier.
0001-01-01T00:00:00 -> 010001-01-01T00:00:00 -> 01

0900-01-01T00:00:00 -> 000900-01-01T00:00:00 -> 00

1900-01-01T00:00:00 -> 001900-01-01T00:00:00 -> 00

2019-06-15T13:45:30 -> 192019-06-15T13:45:30 -> 19
"yyy""yyy" El año, con un mínimo de tres dígitos.The year, with a minimum of three digits.

Más información: Especificador de formato personalizado "yyy".More information: The "yyy" Custom Format Specifier.
0001-01-01T00:00:00 -> 0010001-01-01T00:00:00 -> 001

0900-01-01T00:00:00 -> 9000900-01-01T00:00:00 -> 900

1900-01-01T00:00:00 -> 19001900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 20092009-06-15T13:45:30 -> 2009
"yyyy""yyyy" El año como un número de cuatro dígitos.The year as a four-digit number.

Más información: Especificador de formato personalizado "yyyy".More information: The "yyyy" Custom Format Specifier.
0001-01-01T00:00:00 -> 00010001-01-01T00:00:00 -> 0001

0900-01-01T00:00:00 -> 09000900-01-01T00:00:00 -> 0900

1900-01-01T00:00:00 -> 19001900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 20092009-06-15T13:45:30 -> 2009
"yyyyy""yyyyy" El año como un número de cinco dígitos.The year as a five-digit number.

Más información: Especificador de formato personalizado "yyyyy".More information: The "yyyyy" Custom Format Specifier.
0001-01-01T00:00:00 -> 000010001-01-01T00:00:00 -> 00001

2009-06-15T13:45:30 -> 020092009-06-15T13:45:30 -> 02009
"z""z" Desfase de horas con respecto a la hora UTC, sin ceros iniciales.Hours offset from UTC, with no leading zeros.

Más información: Especificador de formato personalizado "z".More information: The "z" Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -72009-06-15T13:45:30-07:00 -> -7
"zz""zz" Desfase de horas con respecto a la hora UTC, con un cero inicial para un valor de un solo dígito.Hours offset from UTC, with a leading zero for a single-digit value.

Más información: Especificador de formato personalizado "zz".More information: The "zz" Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -072009-06-15T13:45:30-07:00 -> -07
"zzz""zzz" Desfase de horas y minutos con respecto a la hora UTC.Hours and minutes offset from UTC.

Más información: Especificador de formato personalizado "zzz".More information: The "zzz" Custom Format Specifier.
2009-06-15T13:45:30-07:00 -> -07:002009-06-15T13:45:30-07:00 -> -07:00
":"":" El separador de hora.The time separator.

Más información: Especificador de formato personalizado ":".More information: The ":" Custom Format Specifier.
2009-06-15T13:45:30 -> : (en-US)2009-06-15T13:45:30 -> : (en-US)

2009-06-15T13:45:30 -> .2009-06-15T13:45:30 -> . (it-IT)(it-IT)

2009-06-15T13:45:30 -> : (ja-JP)2009-06-15T13:45:30 -> : (ja-JP)
"/""/" El separador de fecha.The date separator.

Más información: Especificador de formato personalizado "/".More Information: The "/" Custom Format Specifier.
2009-06-15T13:45:30 -> / (en-US)2009-06-15T13:45:30 -> / (en-US)

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

2009-06-15T13:45:30 -> .2009-06-15T13:45:30 -> . (tr-TR)(tr-TR)
"cadena""string"

'cadena''string'
Delimitador de cadena literal.Literal string delimiter.

Más información: Literales de carácter.More information: Character literals.
2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P

2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P
% Define el siguiente carácter como un especificador de formato personalizado.Defines the following character as a custom format specifier.

Más información:Usar especificadores de formato personalizado únicos.More information:Using Single Custom Format Specifiers.
2009-06-15T13:45:30 (%h) -> 12009-06-15T13:45:30 (%h) -> 1
\\ El carácter de escape.The escape character.

Más información: Literales de caracteres y Usar el carácter de escape.More information: Character literals and Using the Escape Character.
2009-06-15T13:45:30 (h \h) -> 1 h2009-06-15T13:45:30 (h \h) -> 1 h
Cualquier otro carácterAny other character El carácter se copia en la cadena de resultado sin modificar.The character is copied to the result string unchanged.

Más información: Literales de carácter.More information: Character literals.
2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A

En las secciones siguientes se proporciona información adicional sobre cada especificador de formato de fecha y hora personalizado.The following sections provide additional information about each custom date and time format specifier. A menos que se indique lo contrario, cada especificador genera una representación de cadena idéntica independientemente de que se use con un valor DateTime o DateTimeOffset.Unless otherwise noted, each specifier produces an identical string representation regardless of whether it's used with a DateTime value or a DateTimeOffset value.

Especificador de formato personalizado "d"The "d" custom format specifier

El especificador de formato personalizado "d" representa el día del mes como un número de 1 a 31.The "d" custom format specifier represents the day of the month as a number from 1 through 31. Un día con un solo dígito tiene un formato sin un cero inicial.A single-digit day is formatted without a leading zero.

Si el especificador de formato "d" se usa sin otros especificadores de formato personalizado, se interpretará como el especificador de formato de fecha y hora estándar "d".If the "d" format specifier is used without other custom format specifiers, it's interpreted as the "d" standard date and time format specifier. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se incluye el especificador de formato personalizado "d" en varias cadenas de formato.The following example includes the "d" custom format specifier in several format strings.

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

Console.WriteLine(date1.ToString("d, M", 
                  CultureInfo.InvariantCulture)); 
// Displays 29, 8

Console.WriteLine(date1.ToString("d MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays 29 August
Console.WriteLine(date1.ToString("d MMMM", 
                  CultureInfo.CreateSpecificCulture("es-MX")));
// Displays 29 agosto                                                
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("d, M", _
                  CultureInfo.InvariantCulture)) 
' Displays 29, 8

Console.WriteLine(date1.ToString("d MMMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays 29 August
Console.WriteLine(date1.ToString("d MMMM", _
                  CultureInfo.CreateSpecificCulture("es-MX")))
' Displays 29 agosto                                                

Volver a la tablaBack to table

Especificador de formato personalizado "dd"The "dd" custom format specifier

La cadena de formato personalizado "dd" representa el día del mes como un número de 01 a 31.The "dd" custom format string represents the day of the month as a number from 01 through 31. Un día con un solo dígito tiene un formato con un cero inicial.A single-digit day is formatted with a leading zero.

En el ejemplo siguiente se incluye el especificador de formato personalizado "dd" en una cadena de formato personalizado.The following example includes the "dd" custom format specifier in a custom format string.

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

Console.WriteLine(date1.ToString("dd, MM", 
                  CultureInfo.InvariantCulture)); 
// 02, 01
Dim date1 As Date = #1/2/2008 6:30:15AM#

Console.WriteLine(date1.ToString("dd, MM", _
                  CultureInfo.InvariantCulture)) 
' 02, 01

Volver a la tablaBack to table

Especificador de formato personalizado "ddd"The "ddd" custom format specifier

El especificador de formato personalizado "ddd" representa el nombre abreviado del día de la semana.The "ddd" custom format specifier represents the abbreviated name of the day of the week. El nombre abreviado adaptado del día de la semana se recupera de la propiedad DateTimeFormatInfo.AbbreviatedDayNames de la referencia cultural actual o especificada.The localized abbreviated name of the day of the week is retrieved from the DateTimeFormatInfo.AbbreviatedDayNames property of the current or specified culture.

En el ejemplo siguiente se incluye el especificador de formato personalizado "ddd" en una cadena de formato personalizado.The following example includes the "ddd" custom format specifier in a custom format string.

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

Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays ven. 29 août                                                
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays ven. 29 août                                                

Volver a la tablaBack to table

Especificador de formato personalizado "dddd"The "dddd" custom format specifier

El especificador de formato personalizado "dddd" (más cualquier número de especificadores "d" adicionales) representa el nombre completo del día de la semana.The "dddd" custom format specifier (plus any number of additional "d" specifiers) represents the full name of the day of the week. El nombre adaptado del día de la semana se recupera de la propiedad DateTimeFormatInfo.DayNames de la referencia cultural actual o especificada.The localized name of the day of the week is retrieved from the DateTimeFormatInfo.DayNames property of the current or specified culture.

En el ejemplo siguiente se incluye el especificador de formato personalizado "dddd" en una cadena de formato personalizado.The following example includes the "dddd" custom format specifier in a custom format string.

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

Console.WriteLine(date1.ToString("dddd dd MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM", 
                  CultureInfo.CreateSpecificCulture("it-IT")));
// Displays venerdì 29 agosto                                
Dim date1 As Date = #08/29/2008 7:27:15PM#

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

Volver a la tablaBack to table

Especificador de formato personalizado "f"The "f" custom format specifier

El especificador de formato personalizado "f" representa el dígito más significativo de la fracción de segundos; es decir, representa las décimas de segundo de un valor de fecha y hora.The "f" custom format specifier represents the most significant digit of the seconds fraction; that is, it represents the tenths of a second in a date and time value.

Si el especificador de formato "f" se usa sin otros especificadores de formato, se interpreta como el especificador de formato de fecha y hora estándar "f".If the "f" format specifier is used without other format specifiers, it's interpreted as the "f" standard date and time format specifier. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

Cuando se usan especificadores de formato "f" como parte de una cadena de formato que se proporciona a los métodos ParseExact, TryParseExact, ParseExact u TryParseExact, el número de especificadores de formato "f" indica el número de dígitos más significativos de la fracción de segundos que debe haber presentes para analizar la cadena correctamente.When you use "f" format specifiers as part of a format string supplied to the ParseExact, TryParseExact, ParseExact, or TryParseExact method, the number of "f" format specifiers indicates the number of most significant digits of the seconds fraction that must be present to successfully parse the string.

En el ejemplo siguiente se incluye el especificador de formato personalizado "f" en una cadena de formato personalizado.The following example includes the "f" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

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

Volver a la tablaBack to table

Especificador de formato personalizado "ff"The "ff" custom format specifier

El especificador de formato personalizado "ff" representa los dos dígitos más significativos de la fracción de segundos; es decir, representa las centésimas de segundo de un valor de fecha y hora.The "ff" custom format specifier represents the two most significant digits of the seconds fraction; that is, it represents the hundredths of a second in a date and time value.

En el ejemplo siguiente se incluye el especificador de formato personalizado "ff" en una cadena de formato personalizado.following example includes the "ff" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

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

Volver a la tablaBack to table

Especificador de formato personalizado "fff"The "fff" custom format specifier

El especificador de formato personalizado "fff" representa los tres dígitos más significativos de la fracción de segundos; es decir, representa los milisegundos de un valor de fecha y hora.The "fff" custom format specifier represents the three most significant digits of the seconds fraction; that is, it represents the milliseconds in a date and time value.

En el ejemplo siguiente se incluye el especificador de formato personalizado "fff" en una cadena de formato personalizado.The following example includes the "fff" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

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

Volver a la tablaBack to table

Especificador de formato personalizado "ffff"The "ffff" custom format specifier

El especificador de formato personalizado "ffff" representa los cuatro dígitos más significativos de la fracción de segundos; es decir, representa las diezmilésimas de segundo de un valor de fecha y hora.The "ffff" custom format specifier represents the four most significant digits of the seconds fraction; that is, it represents the ten thousandths of a second in a date and time value.

Si bien se puede mostrar el componente correspondiente a las diezmilésimas de segundo de un valor de hora, es muy posible que ese valor no sea significativo.Although it's possible to display the ten thousandths of a second component of a time value, that value may not be meaningful. La precisión de los valores de fecha y hora depende de la resolución del reloj del sistema.The precision of date and time values depends on the resolution of the system clock. En los sistemas operativos Windows NT 3.5 (y versiones posteriores) y Windows Vista, la resolución del reloj es aproximadamente de 10 a 15 milisegundos.On the Windows NT version 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

Volver a la tablaBack to table

Especificador de formato personalizado "fffff"The "fffff" custom format specifier

El especificador de formato personalizado "fffff" representa los cinco dígitos más significativos de la fracción de segundo; es decir, representa las cienmilésimas de segundo de un valor de fecha y hora.The "fffff" custom format specifier represents the five most significant digits of the seconds fraction; that is, it represents the hundred thousandths of a second in a date and time value.

Si bien se puede mostrar el componente correspondiente a las cienmilésimas de segundo de un valor de hora, es muy posible que ese valor no sea significativo.Although it's possible to display the hundred thousandths of a second component of a time value, that value may not be meaningful. La precisión de los valores de fecha y hora depende de la resolución del reloj del sistema.The precision of date and time values depends on the resolution of the system clock. En los sistemas operativos Windows NT 3.5 (y versiones posteriores) y Windows Vista, la resolución del reloj es aproximadamente de 10 a 15 milisegundos.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

Volver a la tablaBack to table

Especificador de formato personalizado "ffffff"The "ffffff" custom format specifier

El especificador de formato personalizado "ffffff" representa los seis dígitos más significativos de la fracción de segundos; es decir, representa las millonésimas de segundo de un valor de fecha y hora.The "ffffff" custom format specifier represents the six most significant digits of the seconds fraction; that is, it represents the millionths of a second in a date and time value.

Si bien se puede mostrar el componente correspondiente a las millonésimas de segundo de un valor de hora, es muy posible que ese valor no sea significativo.Although it's possible to display the millionths of a second component of a time value, that value may not be meaningful. La precisión de los valores de fecha y hora depende de la resolución del reloj del sistema.The precision of date and time values depends on the resolution of the system clock. En los sistemas operativos Windows NT 3.5 (y versiones posteriores) y Windows Vista, la resolución del reloj es aproximadamente de 10 a 15 milisegundos.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

Volver a la tablaBack to table

Especificador de formato personalizado "fffffff"The "fffffff" custom format specifier

El especificador de formato personalizado "fffffff" representa los siete dígitos más significativos de la fracción de segundos; es decir, representa las diezmillonésimas de segundo de un valor de fecha y hora.The "fffffff" custom format specifier represents the seven most significant digits of the seconds fraction; that is, it represents the ten millionths of a second in a date and time value.

Si bien se puede mostrar el componente correspondiente a las diezmillonésimas de segundo de un valor de hora, es muy posible que ese valor no sea significativo.Although it's possible to display the ten millionths of a second component of a time value, that value may not be meaningful. La precisión de los valores de fecha y hora depende de la resolución del reloj del sistema.The precision of date and time values depends on the resolution of the system clock. En los sistemas operativos Windows NT 3.5 (y versiones posteriores) y Windows Vista, la resolución del reloj es aproximadamente de 10 a 15 milisegundos.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

Volver a la tablaBack to table

Especificador de formato personalizado "F"The "F" custom format specifier

El especificador de formato personalizado "F" representa el dígito más significativo de la fracción de segundos; es decir, representa las décimas de segundo de un valor de fecha y hora.The "F" custom format specifier represents the most significant digit of the seconds fraction; that is, it represents the tenths of a second in a date and time value. Si el dígito es cero, no se muestra nada.Nothing is displayed if the digit is zero.

Si el especificador de formato "F" se usa sin otros especificadores de formato, se interpreta como el especificador de formato de fecha y hora estándar "F".If the "F" format specifier is used without other format specifiers, it's interpreted as the "F" standard date and time format specifier. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

El número de especificadores de formato "F" que se usan con los métodos ParseExact, TryParseExact, ParseExact u TryParseExact indica el número máximo de dígitos más significativos de la fracción de segundos que pueden estar presentes para analizar correctamente la cadena.The number of "F" format specifiers used with the ParseExact, TryParseExact, ParseExact, or TryParseExact method indicates the maximum number of most significant digits of the seconds fraction that can be present to successfully parse the string.

En el ejemplo siguiente se incluye el especificador de formato personalizado "F" en una cadena de formato personalizado.The following example includes the "F" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

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

Volver a la tablaBack to table

Especificador de formato personalizado "FF"The "FF" custom format specifier

El especificador de formato personalizado "FF" representa los dos dígitos más significativos de la fracción de segundos; es decir, representa las centésimas de segundo de un valor de fecha y hora.The "FF" custom format specifier represents the two most significant digits of the seconds fraction; that is, it represents the hundredths of a second in a date and time value. Sin embargo, no se muestran los ceros finales ni los dígitos de dos ceros.However, trailing zeros or two zero digits aren't displayed.

En el ejemplo siguiente se incluye el especificador de formato personalizado "FF" en una cadena de formato personalizado.The following example includes the "FF" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

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

Volver a la tablaBack to table

Especificador de formato personalizado "FFF"The "FFF" custom format specifier

El especificador de formato personalizado "FFF" representa los tres dígitos más significativos de la fracción de segundos; es decir, representa los milisegundos de un valor de fecha y hora.The "FFF" custom format specifier represents the three most significant digits of the seconds fraction; that is, it represents the milliseconds in a date and time value. Sin embargo, no se muestran los ceros finales ni los dígitos de tres ceros.However, trailing zeros or three zero digits aren't displayed.

En el ejemplo siguiente se incluye el especificador de formato personalizado "FFF" en una cadena de formato personalizado.The following example includes the "FFF" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

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

Volver a la tablaBack to table

Especificador de formato personalizado "FFFF"The "FFFF" custom format specifier

El especificador de formato personalizado "FFFF" representa los cuatro dígitos más significativos de la fracción de segundos; es decir, representa las diezmilésimas de segundo de un valor de fecha y hora.The "FFFF" custom format specifier represents the four most significant digits of the seconds fraction; that is, it represents the ten thousandths of a second in a date and time value. Sin embargo, no se muestran los ceros finales ni los dígitos de cuatro ceros.However, trailing zeros or four zero digits aren't displayed.

Si bien se puede mostrar el componente correspondiente a las diezmilésimas de segundo de un valor de hora, es muy posible que ese valor no sea significativo.Although it's possible to display the ten thousandths of a second component of a time value, that value may not be meaningful. La precisión de los valores de fecha y hora depende de la resolución del reloj del sistema.The precision of date and time values depends on the resolution of the system clock. En los sistemas operativos Windows NT 3.5 (y versiones posteriores) y Windows Vista, la resolución del reloj es aproximadamente de 10 a 15 milisegundos.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

Volver a la tablaBack to table

Especificador de formato personalizado "FFFFF"The "FFFFF" custom format specifier

El especificador de formato personalizado "FFFFF" representa los cinco dígitos más significativos de la fracción de segundos; es decir, representa las cienmilésimas de segundo de un valor de fecha y hora.The "FFFFF" custom format specifier represents the five most significant digits of the seconds fraction; that is, it represents the hundred thousandths of a second in a date and time value. Sin embargo, no se muestran los ceros finales ni los dígitos de cinco ceros.However, trailing zeros or five zero digits aren't displayed.

Si bien se puede mostrar el componente correspondiente a las cienmilésimas de segundo de un valor de hora, es muy posible que ese valor no sea significativo.Although it's possible to display the hundred thousandths of a second component of a time value, that value may not be meaningful. La precisión de los valores de fecha y hora depende de la resolución del reloj del sistema.The precision of date and time values depends on the resolution of the system clock. En los sistemas operativos Windows NT 3.5 (y versiones posteriores) y Windows Vista, la resolución del reloj es aproximadamente de 10 a 15 milisegundos.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

Volver a la tablaBack to table

Especificador de formato personalizado "FFFFFF"The "FFFFFF" custom format specifier

El especificador de formato personalizado "FFFFFF" representa los seis dígitos más significativos de la fracción de segundos; es decir, representa las millonésimas de segundo de un valor de fecha y hora.The "FFFFFF" custom format specifier represents the six most significant digits of the seconds fraction; that is, it represents the millionths of a second in a date and time value. Sin embargo, no se muestran los ceros finales ni los dígitos de seis ceros.However, trailing zeros or six zero digits aren't displayed.

Si bien se puede mostrar el componente correspondiente a las millonésimas de segundo de un valor de hora, es muy posible que ese valor no sea significativo.Although it's possible to display the millionths of a second component of a time value, that value may not be meaningful. La precisión de los valores de fecha y hora depende de la resolución del reloj del sistema.The precision of date and time values depends on the resolution of the system clock. En los sistemas operativos Windows NT 3.5 (y versiones posteriores) y Windows Vista, la resolución del reloj es aproximadamente de 10 a 15 milisegundos.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

Volver a la tablaBack to table

Especificador de formato personalizado "FFFFFFF"The "FFFFFFF" custom format specifier

El especificador de formato personalizado "FFFFFFF" representa los siete dígitos más significativos de la fracción de segundos; es decir, representa las diezmillonésimas de segundo de un valor de fecha y hora.The "FFFFFFF" custom format specifier represents the seven most significant digits of the seconds fraction; that is, it represents the ten millionths of a second in a date and time value. Sin embargo, no se muestran los ceros finales ni los dígitos de siete ceros.However, trailing zeros or seven zero digits aren't displayed.

Si bien se puede mostrar el componente correspondiente a las diezmillonésimas de segundo de un valor de hora, es muy posible que ese valor no sea significativo.Although it's possible to display the ten millionths of a second component of a time value, that value may not be meaningful. La precisión de los valores de fecha y hora depende de la resolución del reloj del sistema.The precision of date and time values depends on the resolution of the system clock. En los sistemas operativos Windows NT 3.5 (y versiones posteriores) y Windows Vista, la resolución del reloj es aproximadamente de 10 a 15 milisegundos.On the Windows NT 3.5 (and later) and Windows Vista operating systems, the clock's resolution is approximately 10-15 milliseconds.

Volver a la tablaBack to table

Especificador de formato personalizado "g" o "gg"The "g" or "gg" custom format specifier

Los especificadores de formato personalizado "g" o "gg" (más cualquier número de especificadores "g" adicionales) representan el período o la era, como d.C.The "g" or "gg" custom format specifiers (plus any number of additional "g" specifiers) represents the period or era, such as A.D. La operación de formato hace caso omiso de este especificador si la fecha a la que se va a dar formato no tiene una cadena de período o de era asociada.The formatting operation ignores this specifier if the date to be formatted doesn't have an associated period or era string.

Si el especificador de formato "g" se usa sin otros especificadores de formato personalizado, se interpretará como el especificador de formato de fecha y hora estándar "g".If the "g" format specifier is used without other custom format specifiers, it's interpreted as the "g" standard date and time format specifier. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se incluye el especificador de formato personalizado "g" en una cadena de formato personalizado.The following example includes the "g" custom format specifier in a custom format string.

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

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

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

Volver a la tablaBack to table

Especificador de formato personalizado "h"The "h" custom format specifier

El especificador de formato personalizado "h" representa la hora como un número del 1 al 12; es decir, la hora se representa como en un reloj de 12 horas que cuenta las horas enteras desde medianoche o mediodía.The "h" custom format specifier represents the hour as a number from 1 through 12; that is, the hour is represented by a 12-hour clock that counts the whole hours since midnight or noon. Una hora determinada después de la medianoche no se distingue de la misma hora después del mediodía.A particular hour after midnight is indistinguishable from the same hour after noon. No se redondea la hora y las horas con un solo dígito no tienen un cero inicial.The hour is not rounded, and a single-digit hour is formatted without a leading zero. Por ejemplo, dada una hora de 5:43 de la mañana o de la tarde, este especificador de formato personalizado muestra "5".For example, given a time of 5:43 in the morning or afternoon, this custom format specifier displays "5".

Si el especificador de formato "h" se usa sin otros especificadores de formato personalizado, se interpretará como un especificador de formato de fecha y hora estándar y producirá una excepción FormatException.If the "h" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se incluye el especificador de formato personalizado "h" en una cadena de formato personalizado.The following example includes the "h" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ                        
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ                        
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ

Volver a la tablaBack to table

Especificador de formato personalizado "hh"The "hh" custom format specifier

El especificador de formato personalizado "hh" (más cualquier número de especificadores "h" adicionales) representa la hora como un número del 01 al 12; es decir, la hora se representa como en un reloj de 12 horas que cuenta las horas enteras desde medianoche o mediodía.The "hh" custom format specifier (plus any number of additional "h" specifiers) represents the hour as a number from 01 through 12; that is, the hour is represented by a 12-hour clock that counts the whole hours since midnight or noon. Una hora determinada después de la medianoche no se distingue de la misma hora después del mediodía.A particular hour after midnight is indistinguishable from the same hour after noon. No se redondea la hora y las horas con un solo dígito tienen un cero inicial.The hour is not rounded, and a single-digit hour is formatted with a leading zero. Por ejemplo, dada una hora de 5:43 de la mañana o de la tarde, este especificador de formato muestra "05".For example, given a time of 5:43 in the morning or afternoon, this format specifier displays "05".

En el ejemplo siguiente se incluye el especificador de formato personalizado "hh" en una cadena de formato personalizado.The following example includes the "hh" custom format specifier in a custom format string.

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

Volver a la tablaBack to table

Especificador de formato personalizado "H"The "H" custom format specifier

El especificador de formato personalizado "H" representa la hora como un número del 0 al 23; es decir, la hora se representa como en un reloj de 24 horas de base cero que cuenta las horas desde medianoche.The "H" custom format specifier represents the hour as a number from 0 through 23; that is, the hour is represented by a zero-based 24-hour clock that counts the hours since midnight. Una hora con un solo dígito tiene un formato sin un cero inicial.A single-digit hour is formatted without a leading zero.

Si el especificador de formato "H" se usa sin otros especificadores de formato personalizado, se interpretará como un especificador de formato de fecha y hora estándar y producirá una excepción FormatException.If the "H" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se incluye el especificador de formato personalizado "H" en una cadena de formato personalizado.The following example includes the "H" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1);
Console.WriteLine(date1.ToString("H:mm:ss", 
                  CultureInfo.InvariantCulture));
// Displays 6:09:01              
Dim date1 As Date = #6:09:01AM#
Console.WriteLine(date1.ToString("H:mm:ss", _
                  CultureInfo.InvariantCulture))
' Displays 6:09:01                        

Volver a la tablaBack to table

Especificador de formato personalizado "HH"The "HH" custom format specifier

El especificador de formato personalizado "HH" (más cualquier número de especificadores "H" adicionales) representa la hora como un número del 00 al 23; es decir, la hora se representa como en un reloj de 24 horas de base cero que cuenta las horas desde medianoche.The "HH" custom format specifier (plus any number of additional "H" specifiers) represents the hour as a number from 00 through 23; that is, the hour is represented by a zero-based 24-hour clock that counts the hours since midnight. Una hora con un solo dígito tiene un formato con un cero inicial.A single-digit hour is formatted with a leading zero.

En el ejemplo siguiente se incluye el especificador de formato personalizado "HH" en una cadena de formato personalizado.The following example includes the "HH" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1);
Console.WriteLine(date1.ToString("HH:mm:ss", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01                        
Dim date1 As Date = #6:09:01AM#
Console.WriteLine(date1.ToString("HH:mm:ss", _
                  CultureInfo.InvariantCulture))
' Displays 06:09:01                        

Volver a la tablaBack to table

Especificador de formato personalizado "K"The "K" custom format specifier

El especificador de formato personalizado "K" representa la información de zona horaria de un valor de fecha y hora.The "K" custom format specifier represents the time zone information of a date and time value. Cuando este formato se usa con valores DateTime, el valor de la propiedad DateTime.Kind define la cadena de resultado.When this format specifier is used with DateTime values, the result string is defined by the value of the DateTime.Kind property:

  • En la zona horaria local (un valor de propiedad DateTime.Kind de DateTimeKind.Local), este especificador es equivalente al especificador "zzz" y genera una cadena de resultado que contiene el desfase local con respecto a la hora universal coordinada (UTC); por ejemplo, "-07: 00".For the local time zone (a DateTime.Kind property value of DateTimeKind.Local), this specifier is equivalent to the "zzz" specifier and produces a result string containing the local offset from Coordinated Universal Time (UTC); for example, "-07:00".

  • En una hora UTC (un valor de propiedad DateTime.Kind de DateTimeKind.Utc), la cadena de resultado incluye un carácter "Z" para representar una fecha UTC.For a UTC time (a DateTime.Kind property value of DateTimeKind.Utc), the result string includes a "Z" character to represent a UTC date.

  • En una hora de una zona horaria no especificada (una hora cuya propiedad DateTime.Kind es igual a DateTimeKind.Unspecified), el resultado es equivalente a String.Empty.For a time from an unspecified time zone (a time whose DateTime.Kind property equals DateTimeKind.Unspecified), the result is equivalent to String.Empty.

En los valores DateTimeOffset, el especificador de formato "K" es equivalente al especificador de formato "zzz" y genera una cadena de resultado que contiene el desfase del valor DateTimeOffset con respecto a la hora UTC.For DateTimeOffset values, the "K" format specifier is equivalent to the "zzz" format specifier, and produces a result string containing the DateTimeOffset value's offset from UTC.

Si el especificador de formato "K" se usa sin otros especificadores de formato personalizado, se interpretará como un especificador de formato de fecha y hora estándar y producirá una excepción FormatException.If the "K" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se muestra la cadena que se obtiene al utilizar el especificador de formato personalizado "K" con varios valores DateTime y DateTimeOffset en un sistema de la zona horaria del Pacífico de EE. UU.The following example displays the string that results from using the "K" custom format specifier with various DateTime and DateTimeOffset values on a system in the U.S. Pacific Time zone.

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

Volver a la tablaBack to table

Especificador de formato personalizado "m"The "m" custom format specifier

El especificador de formato personalizado "m" representa el minuto como un número de 0 a 59.The "m" custom format specifier represents the minute as a number from 0 through 59. El minuto representa los minutos enteros que han transcurrido desde la última hora.The minute represents whole minutes that have passed since the last hour. Un minuto con un solo dígito tiene un formato sin un cero inicial.A single-digit minute is formatted without a leading zero.

Si el especificador de formato "m" se usa sin otros especificadores de formato personalizado, se interpretará como el especificador de formato de fecha y hora estándar "m".If the "m" format specifier is used without other custom format specifiers, it's interpreted as the "m" standard date and time format specifier. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se incluye el especificador de formato personalizado "m" en una cadena de formato personalizado.The following example includes the "m" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ                        
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ                        
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ

Volver a la tablaBack to table

Especificador de formato personalizado "mm"The "mm" custom format specifier

El especificador de formato personalizado "mm" (más cualquier número de especificadores "m" adicionales) representa el minuto como un número de 00 a 59.The "mm" custom format specifier (plus any number of additional "m" specifiers) represents the minute as a number from 00 through 59. El minuto representa los minutos enteros que han transcurrido desde la última hora.The minute represents whole minutes that have passed since the last hour. Un minuto con un solo dígito tiene un formato con un cero inicial.A single-digit minute is formatted with a leading zero.

En el ejemplo siguiente se incluye el especificador de formato personalizado "mm" en una cadena de formato personalizado.The following example includes the "mm" custom format specifier in a custom format string.

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

Volver a la tablaBack to table

Especificador de formato personalizado "M"The "M" custom format specifier

El especificador de formato personalizado "M" representa el mes como un número del 1 al 12 (o del 1 al 13 para los calendarios con 13 meses).The "M" custom format specifier represents the month as a number from 1 through 12 (or from 1 through 13 for calendars that have 13 months). Un mes con un solo dígito tiene un formato sin un cero inicial.A single-digit month is formatted without a leading zero.

Si el especificador de formato "M" se usa sin otros especificadores de formato personalizado, se interpretará como el especificador de formato de fecha y hora estándar "M".If the "M" format specifier is used without other custom format specifiers, it's interpreted as the "M" standard date and time format specifier. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se incluye el especificador de formato personalizado "M" en una cadena de formato personalizado.The following example includes the "M" custom format specifier in a custom format string.

DateTime date1 = new DateTime(2008, 8, 18);
Console.WriteLine(date1.ToString("(M) MMM, MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays (8) Aug, August
Console.WriteLine(date1.ToString("(M) MMM, MMMM", 
                  CultureInfo.CreateSpecificCulture("nl-NL")));                       
// Displays (8) aug, augustus
Console.WriteLine(date1.ToString("(M) MMM, MMMM", 
                  CultureInfo.CreateSpecificCulture("lv-LV")));                        
// Displays (8) Aug, augusts                       
Dim date1 As Date = #8/18/2008#
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays (8) Aug, August
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
                  CultureInfo.CreateSpecificCulture("nl-NL")))                        
' Displays (8) aug, augustus
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
                  CultureInfo.CreateSpecificCulture("lv-LV")))                        
' Displays (8) Aug, augusts                       

Volver a la tablaBack to table

Especificador de formato personalizado "MM"The "MM" custom format specifier

El especificador de formato personalizado "MM" representa el mes como un número del 01 al 12 (o del 1 al 13 para los calendarios con 13 meses).The "MM" custom format specifier represents the month as a number from 01 through 12 (or from 1 through 13 for calendars that have 13 months). Un mes con un solo dígito tiene un formato con un cero inicial.A single-digit month is formatted with a leading zero.

En el ejemplo siguiente se incluye el especificador de formato personalizado "MM" en una cadena de formato personalizado.The following example includes the "MM" custom format specifier in a custom format string.

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

Console.WriteLine(date1.ToString("dd, MM", 
                  CultureInfo.InvariantCulture)); 
// 02, 01
Dim date1 As Date = #1/2/2008 6:30:15AM#

Console.WriteLine(date1.ToString("dd, MM", _
                  CultureInfo.InvariantCulture)) 
' 02, 01

Volver a la tablaBack to table

Especificador de formato personalizado "MMM"The "MMM" custom format specifier

El especificador de formato personalizado "MMM" representa el nombre abreviado del mes.The "MMM" custom format specifier represents the abbreviated name of the month. El nombre abreviado adaptado del mes se recupera de la propiedad DateTimeFormatInfo.AbbreviatedMonthNames de la referencia cultural actual o especificada.The localized abbreviated name of the month is retrieved from the DateTimeFormatInfo.AbbreviatedMonthNames property of the current or specified culture.

En el ejemplo siguiente se incluye el especificador de formato personalizado "MMM" en una cadena de formato personalizado.The following example includes the "MMM" custom format specifier in a custom format string.

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

Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", 
                  CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays ven. 29 août                                                
Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("en-US")))
' Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM", _
                  CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays ven. 29 août                                                

Volver a la tablaBack to table

Especificador de formato personalizado "MMMM"The "MMMM" custom format specifier

El especificador de formato personalizado "MMMM" representa el nombre completo del mes.The "MMMM" custom format specifier represents the full name of the month. El nombre adaptado del mes se recupera de la propiedad DateTimeFormatInfo.MonthNames de la referencia cultural actual o especificada.The localized name of the month is retrieved from the DateTimeFormatInfo.MonthNames property of the current or specified culture.

En el ejemplo siguiente se incluye el especificador de formato personalizado "MMMM" en una cadena de formato personalizado.The following example includes the "MMMM" custom format specifier in a custom format string.

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

Console.WriteLine(date1.ToString("dddd dd MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM", 
                  CultureInfo.CreateSpecificCulture("it-IT")));
// Displays venerdì 29 agosto                                
Dim date1 As Date = #08/29/2008 7:27:15PM#

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

Volver a la tablaBack to table

Especificador de formato personalizado "s"The "s" custom format specifier

El especificador de formato personalizado "s" representa los segundos como un número de 0 a 59.The "s" custom format specifier represents the seconds as a number from 0 through 59. El resultado representa los segundos enteros que han transcurrido desde el último minuto.The result represents whole seconds that have passed since the last minute. Un segundo con un solo dígito tiene un formato sin un cero inicial.A single-digit second is formatted without a leading zero.

Si el especificador de formato "s" se usa sin otros especificadores de formato personalizado, se interpretará como el especificador de formato de fecha y hora estándar "s".If the "s" format specifier is used without other custom format specifiers, it's interpreted as the "s" standard date and time format specifier. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se incluye el especificador de formato personalizado "s" en una cadena de formato personalizado.The following example includes the "s" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ                        
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ                        
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ

Volver a la tablaBack to table

Especificador de formato personalizado "ss"The "ss" custom format specifier

El especificador de formato personalizado "ss" (más cualquier número de especificadores "s" adicionales) representa los segundos como un número de 00 a 59.The "ss" custom format specifier (plus any number of additional "s" specifiers) represents the seconds as a number from 00 through 59. El resultado representa los segundos enteros que han transcurrido desde el último minuto.The result represents whole seconds that have passed since the last minute. Un segundo con un solo dígito tiene un formato con un cero inicial.A single-digit second is formatted with a leading zero.

En el ejemplo siguiente se incluye el especificador de formato personalizado "ss" en una cadena de formato personalizado.The following example includes the "ss" custom format specifier in a custom format string.

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

Volver a la tablaBack to table

Especificador de formato personalizado "t"The "t" custom format specifier

El especificador de formato personalizado "t" representa el primer carácter del designador AM/PM.The "t" custom format specifier represents the first character of the AM/PM designator. El designador adaptado adecuado se recupera de la propiedad DateTimeFormatInfo.AMDesignator o DateTimeFormatInfo.PMDesignator de la referencia cultural actual o especificada.The appropriate localized designator is retrieved from the DateTimeFormatInfo.AMDesignator or DateTimeFormatInfo.PMDesignator property of the current or specific culture. El designador AM se usa para todas las horas de 0:00:00 (medianoche) a 11:59:59.999.The AM designator is used for all times from 0:00:00 (midnight) to 11:59:59.999. El designador PM se usa para todas las horas de 12:00:00 (mediodía) a 23:59:59.999.The PM designator is used for all times from 12:00:00 (noon) to 23:59:59.999.

Si el especificador de formato "t" se usa sin otros especificadores de formato personalizado, se interpretará como el especificador de formato de fecha y hora estándar "t".If the "t" format specifier is used without other custom format specifiers, it's interpreted as the "t" standard date and time format specifier. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se incluye el especificador de formato personalizado "t" en una cadena de formato personalizado.The following example includes the "t" custom format specifier in a custom format string.

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ                        
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", 
                  CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date 
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ                        
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
                  CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ

Volver a la tablaBack to table

Especificador de formato personalizado "tt"The "tt" custom format specifier

El especificador de formato personalizado "tt" (más cualquier número de especificadores "t" adicionales) representa designador AM/PM completo.The "tt" custom format specifier (plus any number of additional "t" specifiers) represents the entire AM/PM designator. El designador adaptado adecuado se recupera de la propiedad DateTimeFormatInfo.AMDesignator o DateTimeFormatInfo.PMDesignator de la referencia cultural actual o especificada.The appropriate localized designator is retrieved from the DateTimeFormatInfo.AMDesignator or DateTimeFormatInfo.PMDesignator property of the current or specific culture. El designador AM se usa para todas las horas de 0:00:00 (medianoche) a 11:59:59.999.The AM designator is used for all times from 0:00:00 (midnight) to 11:59:59.999. El designador PM se usa para todas las horas de 12:00:00 (mediodía) a 23:59:59.999.The PM designator is used for all times from 12:00:00 (noon) to 23:59:59.999.

Asegúrese de usar el especificador "tt" para aquellos idiomas en los que sea necesario mantener la distinción entre a. m. y p. m.Make sure to use the "tt" specifier for languages for which it's necessary to maintain the distinction between AM and PM. Un ejemplo es el japonés, en el que los designadores de a.m. y p.m. se diferencian en el segundo carácter en vez de en el primero.An example is Japanese, for which the AM and PM designators differ in the second character instead of the first character.

En el ejemplo siguiente se incluye el especificador de formato personalizado "tt" en una cadena de formato personalizado.The following example includes the "tt" custom format specifier in a custom format string.

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

Volver a la tablaBack to table

Especificador de formato personalizado "y"The "y" custom format specifier

El especificador de formato personalizado "y" representa el año como un número de uno o dos dígitos.The "y" custom format specifier represents the year as a one-digit or two-digit number. Si el año tiene más de dos dígitos, en el resultado sólo aparecen los dos dígitos de orden inferior.If the year has more than two digits, only the two low-order digits appear in the result. Si el primer dígito de un año de dos dígitos comienza con un cero (por ejemplo, 2008), se aplica formato al número sin el cero inicial.If the first digit of a two-digit year begins with a zero (for example, 2008), the number is formatted without a leading zero.

Si el especificador de formato "y" se usa sin otros especificadores de formato personalizado, se interpretará como el especificador de formato de fecha y hora estándar "y".If the "y" format specifier is used without other custom format specifiers, it's interpreted as the "y" standard date and time format specifier. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se incluye el especificador de formato personalizado "y" en una cadena de formato personalizado.The following example includes the "y" custom format specifier in a custom format string.

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

Volver a la tablaBack to table

Especificador de formato personalizado "yy"The "yy" custom format specifier

El especificador de formato personalizado "yy" representa el año como un número de dos dígitos.The "yy" custom format specifier represents the year as a two-digit number. Si el año tiene más de dos dígitos, en el resultado sólo aparecen los dos dígitos de orden inferior.If the year has more than two digits, only the two low-order digits appear in the result. Si el año de dos dígitos tiene menos de dos dígitos significativos, el número se rellenará con ceros iniciales hasta obtener dos dígitos.If the two-digit year has fewer than two significant digits, the number is padded with leading zeros to produce two digits.

En una operación de análisis, un año de dos dígitos que se analiza mediante el especificador de formato personalizado “yy” se interpreta basándose en la propiedad de Calendar.TwoDigitYearMax del calendario actual del proveedor de formato.In a parsing operation, a two-digit year that is parsed using the "yy" custom format specifier is interpreted based on the Calendar.TwoDigitYearMax property of the format provider's current calendar. En el ejemplo siguiente se analiza la representación en forma de cadena de una fecha con un año de dos dígitos utilizando el calendario gregoriano predeterminado de la referencia cultural actual (en este caso, en-US).The following example parses the string representation of a date that has a two-digit year by using the default Gregorian calendar of the en-US culture, which, in this case, is the current culture. Modifica el objeto CultureInfo de la referencia cultural actual para utilizar un objeto GregorianCalendar cuya propiedad TwoDigitYearMax se ha modificado.It then changes the current culture's CultureInfo object to use a GregorianCalendar object whose TwoDigitYearMax property has been modified.

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

public class Example
{
   public static void Main()
   {
      string fmt = "dd-MMM-yy";
      string value = "24-Jan-49";
      
      Calendar cal = (Calendar) CultureInfo.CurrentCulture.Calendar.Clone();
      Console.WriteLine("Two Digit Year Range: {0} - {1}", 
                        cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax);
      
      Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null));
      Console.WriteLine();
      
      cal.TwoDigitYearMax = 2099;
      CultureInfo culture = (CultureInfo) CultureInfo.CurrentCulture.Clone();
      culture.DateTimeFormat.Calendar = cal;
      Thread.CurrentThread.CurrentCulture = culture;

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

Module Example
   Public Sub Main()
      Dim fmt As String = "dd-MMM-yy"
      Dim value As String = "24-Jan-49"
      
      Dim cal As Calendar = CType(CultureInfo.CurrentCulture.Calendar.Clone(), Calendar)
      Console.WriteLine("Two Digit Year Range: {0} - {1}", 
                        cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax)
      
      Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, Nothing))
      Console.WriteLine()
      
      cal.TwoDigitYearMax = 2099
      Dim culture As CultureInfo = CType(CultureInfo.CurrentCulture.Clone(), CultureInfo)
      culture.DateTimeFormat.Calendar = cal
      Thread.CurrentThread.CurrentCulture = culture

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

En el ejemplo siguiente se incluye el especificador de formato personalizado "yy" en una cadena de formato personalizado.The following example includes the "yy" custom format specifier in a custom format string.

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

Volver a la tablaBack to table

Especificador de formato personalizado "yyy"The "yyy" custom format specifier

El especificador de formato personalizado "yyy" representa el año con un mínimo de tres dígitos.The "yyy" custom format specifier represents the year with a minimum of three digits. Si el año tiene más de tres dígitos significativos, se incluyen en la cadena de resultado.If the year has more than three significant digits, they are included in the result string. Si el año tiene menos de tres dígitos, el número se rellenará con ceros iniciales hasta obtener tres dígitos.If the year has fewer than three digits, the number is padded with leading zeros to produce three digits.

Nota

Para el calendario budista tailandés, que puede tener años de cinco dígitos, este especificador de formato muestra todos los dígitos significativos.For the Thai Buddhist calendar, which can have five-digit years, this format specifier displays all significant digits.

En el ejemplo siguiente se incluye el especificador de formato personalizado "yyy" en una cadena de formato personalizado.The following example includes the "yyy" custom format specifier in a custom format string.

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

Volver a la tablaBack to table

Especificador de formato personalizado "yyyy"The "yyyy" custom format specifier

El especificador de formato personalizado "Yyyy" representa el año con un mínimo de cuatro dígitos.The "yyyy" custom format specifier represents the year with a minimum of four digits. Si el año tiene más de cuatro dígitos significativos, se incluyen en la cadena resultante.If the year has more than four significant digits, they are included in the result string. Si el año tiene menos de cuatro dígitos, el número se completa con ceros iniciales hasta obtener cuatro dígitos.If the year has fewer than four digits, the number is padded with leading zeros to produce four digits.

Nota

En el calendario budista tailandés, que puede tener años de cinco dígitos, este especificador de formato muestra un mínimo de cuatro dígitos.For the Thai Buddhist calendar, which can have five-digit years, this format specifier displays a minimum of four digits.

En el ejemplo siguiente se incluye el especificador de formato personalizado "yyyy" en una cadena de formato personalizado.The following example includes the "yyyy" custom format specifier in a custom format string.

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

Volver a la tablaBack to table

Especificador de formato personalizado "yyyyy"The "yyyyy" custom format specifier

El especificador de formato personalizado "yyyyy" (más cualquier número de especificadores "y" adicionales) representa el año con un mínimo de cinco dígitos.The "yyyyy" custom format specifier (plus any number of additional "y" specifiers) represents the year with a minimum of five digits. Si el año tiene más de cinco dígitos significativos, se incluyen en la cadena resultante.If the year has more than five significant digits, they are included in the result string. Si el año tiene menos de cinco dígitos, el número se rellenará con ceros iniciales hasta obtener cinco dígitos.If the year has fewer than five digits, the number is padded with leading zeros to produce five digits.

Si hay especificadores "y" adicionales, el número se rellenará con tantos ceros iniciales como sean necesarios para obtener el número de especificadores "y".If there are additional "y" specifiers, the number is padded with as many leading zeros as necessary to produce the number of "y" specifiers.

En el ejemplo siguiente se incluye el especificador de formato personalizado "yyyyy" en una cadena de formato personalizado.The following example includes the "yyyyy" custom format specifier in a custom format string.

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

Volver a la tablaBack to table

Especificador de formato personalizado "z"The "z" custom format specifier

Con valores DateTime, el especificador de formato personalizado "z" representa el desfase con signo de la zona horaria del sistema operativo local respecto a la hora universal coordinada (UTC), medido en horas.With DateTime values, the "z" custom format specifier represents the signed offset of the local operating system's time zone from Coordinated Universal Time (UTC), measured in hours. No refleja el valor de la propiedad DateTime.Kind de una instancia.It doesn't reflect the value of an instance's DateTime.Kind property. Por esta razón, no se recomienda usar el especificador de formato "z" con valores DateTime.For this reason, the "z" format specifier is not recommended for use with DateTime values.

Con valores DateTimeOffset, este especificador de formato representa el desfase en horas del valor DateTimeOffset con respecto a la hora UTC.With DateTimeOffset values, this format specifier represents the DateTimeOffset value's offset from UTC in hours.

La diferencia horaria se muestra siempre con un signo inicial.The offset is always displayed with a leading sign. Un signo más (+) indica las horas de adelanto y un signo menos (-) indica las horas de retraso con respecto a la hora UTC.A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. Un desfase con un solo dígito tiene un formato sin un cero inicial.A single-digit offset is formatted without a leading zero.

Si el especificador de formato "z" se usa sin otros especificadores de formato personalizado, se interpretará como un especificador de formato de fecha y hora estándar y producirá una excepción FormatException.If the "z" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

En el ejemplo siguiente se incluye el especificador de formato personalizado "z" en una cadena de formato personalizado.The following example includes the "z" custom format specifier in a custom format string.

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

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0, 
                                          new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date1))
' Displays -7, -07, -07:00                     

Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
                                New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date2))                                     
' Displays +6, +06, +06:00

Volver a la tablaBack to table

Especificador de formato personalizado "zz"The "zz" custom format specifier

Con valores DateTime, el especificador de formato personalizado "zz" representa el desfase con signo de la zona horaria del sistema operativo local respecto a la hora UTC, medido en horas.With DateTime values, the "zz" custom format specifier represents the signed offset of the local operating system's time zone from UTC, measured in hours. No refleja el valor de la propiedad DateTime.Kind de una instancia.It doesn't reflect the value of an instance's DateTime.Kind property. Por esta razón, no se recomienda usar el especificador de formato "zz" con valores DateTime.For this reason, the "zz" format specifier is not recommended for use with DateTime values.

Con valores DateTimeOffset, este especificador de formato representa el desfase en horas del valor DateTimeOffset con respecto a la hora UTC.With DateTimeOffset values, this format specifier represents the DateTimeOffset value's offset from UTC in hours.

La diferencia horaria se muestra siempre con un signo inicial.The offset is always displayed with a leading sign. Un signo más (+) indica las horas de adelanto y un signo menos (-) indica las horas de retraso con respecto a la hora UTC.A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. Un desfase con un solo dígito tiene un formato con un cero inicial.A single-digit offset is formatted with a leading zero.

En el ejemplo siguiente se incluye el especificador de formato personalizado "zz" en una cadena de formato personalizado.The following example includes the "zz" custom format specifier in a custom format string.

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

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0, 
                                          new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date1))
' Displays -7, -07, -07:00                     

Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
                                New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date2))                                     
' Displays +6, +06, +06:00

Volver a la tablaBack to table

Especificador de formato personalizado "zzz"The "zzz" custom format specifier

Con valores DateTime, el especificador de formato personalizado "zzz" representa el desfase con signo de la zona horaria del sistema operativo local respecto a la hora UTC, medido en horas y minutos.With DateTime values, the "zzz" custom format specifier represents the signed offset of the local operating system's time zone from UTC, measured in hours and minutes. No refleja el valor de la propiedad DateTime.Kind de una instancia.It doesn't reflect the value of an instance's DateTime.Kind property. Por esta razón, no se recomienda usar el especificador de formato "zzz" con valores DateTime.For this reason, the "zzz" format specifier is not recommended for use with DateTime values.

Con valores DateTimeOffset, este especificador de formato representa el desfase en horas y minutos del valor DateTimeOffset con respecto a la hora UTC.With DateTimeOffset values, this format specifier represents the DateTimeOffset value's offset from UTC in hours and minutes.

La diferencia horaria se muestra siempre con un signo inicial.The offset is always displayed with a leading sign. Un signo más (+) indica las horas de adelanto y un signo menos (-) indica las horas de retraso con respecto a la hora UTC.A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. Un desfase con un solo dígito tiene un formato con un cero inicial.A single-digit offset is formatted with a leading zero.

En el ejemplo siguiente se incluye el especificador de formato personalizado "zzz" en una cadena de formato personalizado.The following example includes the "zzz" custom format specifier in a custom format string.

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

DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0, 
                                          new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", 
                  date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date1))
' Displays -7, -07, -07:00                     

Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
                                New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
                  date2))                                     
' Displays +6, +06, +06:00

Volver a la tablaBack to table

Especificador de formato personalizado ":"The ":" custom format specifier

El especificador de formato personalizado ":" representa el separador de hora, que se usa para diferenciar horas, minutos y segundos.The ":" custom format specifier represents the time separator, which is used to differentiate hours, minutes, and seconds. El separador de hora adaptado adecuado se recupera de la propiedad DateTimeFormatInfo.TimeSeparator de la referencia cultural actual o especificada.The appropriate localized time separator is retrieved from the DateTimeFormatInfo.TimeSeparator property of the current or specified culture.

Nota

Para cambiar el separador de hora en una determinada cadena de fecha y hora, especifique el carácter separador en un delimitador de cadena literal.To change the time separator for a particular date and time string, specify the separator character within a literal string delimiter. Por ejemplo, la cadena de formato personalizado hh'_'dd'_'ss genera una cadena en que "_" (guion bajo) siempre se utiliza como separador de hora.For example, the custom format string hh'_'dd'_'ss produces a result string in which "_" (an underscore) is always used as the time separator. Para cambiar el separador de hora en todas las fechas de una referencia cultural, cambie el valor de la propiedad DateTimeFormatInfo.TimeSeparator de la referencia cultural actual, o cree una instancia de un objeto DateTimeFormatInfo, asigne el carácter a su propiedad TimeSeparator y llame a una sobrecarga del método de formato que incluya un parámetro IFormatProvider.To change the time separator for all dates for a culture, either change the value of the DateTimeFormatInfo.TimeSeparator property of the current culture, or instantiate a DateTimeFormatInfo object, assign the character to its TimeSeparator property, and call an overload of the formatting method that includes an IFormatProvider parameter.

Si el especificador de formato ":" se usa sin otros especificadores de formato personalizado, se interpretará como un especificador de formato de fecha y hora estándar y producirá una excepción FormatException.If the ":" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

Volver a la tablaBack to table

Especificador de formato personalizado "/"The "/" custom format specifier

El especificador de formato personalizado "/" representa el separador de fecha, que se usa para diferenciar años, meses y días.The "/" custom format specifier represents the date separator, which is used to differentiate years, months, and days. El separador de fecha adaptado adecuado se recupera de la propiedad DateTimeFormatInfo.DateSeparator de la referencia cultural actual o especificada.The appropriate localized date separator is retrieved from the DateTimeFormatInfo.DateSeparator property of the current or specified culture.

Nota

Para cambiar el separador de fecha en una determinada cadena de fecha y hora, especifique el carácter separador en un delimitador de cadena literal.To change the date separator for a particular date and time string, specify the separator character within a literal string delimiter. Por ejemplo, la cadena de formato personalizado mm'/'dd'/'yyyy genera una cadena en que "/" siempre se utiliza como separador de fecha.For example, the custom format string mm'/'dd'/'yyyy produces a result string in which "/" is always used as the date separator. Para cambiar el separador de fecha en todas las fechas de una referencia cultural, cambie el valor de la propiedad DateTimeFormatInfo.DateSeparator de la referencia cultural actual, o cree una instancia de un objeto DateTimeFormatInfo, asigne el carácter a su propiedad DateSeparator y llame a una sobrecarga del método de formato que incluya un parámetro IFormatProvider.To change the date separator for all dates for a culture, either change the value of the DateTimeFormatInfo.DateSeparator property of the current culture, or instantiate a DateTimeFormatInfo object, assign the character to its DateSeparator property, and call an overload of the formatting method that includes an IFormatProvider parameter.

Si el especificador de formato "/" se usa sin otros especificadores de formato personalizado, se interpretará como un especificador de formato de fecha y hora estándar y producirá una excepción FormatException.If the "/" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a FormatException. Para más información sobre cómo usar un especificador de formato único, vea Usar especificadores de formato personalizado únicos más adelante en este artículo.For more information about using a single format specifier, see Using Single Custom Format Specifiers later in this article.

Volver a la tablaBack to table

Literales de carácterCharacter literals

Los siguientes caracteres de una cadena de formato de fecha y hora personalizado están reservados y siempre se interpretan como caracteres de formato o, en el caso de ", ', / y \, como caracteres especiales.The following characters in a custom date and time format string are reserved and are always interpreted as formatting characters or, in the case of ", ', /, and \, as special characters.

FF HH KK MM dd
ff eg hh mm ss
mt yy zz % ::
/ "" '' \\

Todos los demás caracteres se interpretan siempre como literales de carácter y, en una operación de formato, se incluyen en la cadena de resultado sin modificar.All other characters are always interpreted as character literals and, in a formatting operation, are included in the result string unchanged. En una operación de análisis, deben coincidir exactamente con los caracteres de la cadena de entrada; la comparación distingue entre mayúsculas y minúsculas.In a parsing operation, they must match the characters in the input string exactly; the comparison is case-sensitive.

En el ejemplo siguiente se incluyen los caracteres literales "PST" (para hora estándar del Pacífico) y "PDT" (para horario de verano del Pacífico) para representar la zona horaria local en una cadena de formato.The following example includes the literal characters "PST" (for Pacific Standard Time) and "PDT" (for Pacific Daylight Time) to represent the local time zone in a format string. Tenga en cuenta que la cadena se incluye en la cadena de resultado y que una cadena que incluye la cadena de zona horaria local también se analiza correctamente.Note that the string is included in the result string, and that a string that includes the local time zone string also parses successfully.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      String[] formats = { "dd MMM yyyy hh:mm tt PST", 
                           "dd MMM yyyy hh:mm tt PDT" };
      var dat = new DateTime(2016, 8, 18, 16, 50, 0);
      // Display the result string. 
      Console.WriteLine(dat.ToString(formats[1]));
      
      // Parse a string. 
      String value = "25 Dec 2016 12:00 pm PST";
      DateTime newDate;
      if (DateTime.TryParseExact(value, formats, null, 
                                 DateTimeStyles.None, out newDate)) 
         Console.WriteLine(newDate);
      else
         Console.WriteLine("Unable to parse '{0}'", value);
   }
}
// The example displays the following output:
//       18 Aug 2016 04:50 PM PDT
//       12/25/2016 12:00:00 PM
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim formats() As String = { "dd MMM yyyy hh:mm tt PST", 
                                  "dd MMM yyyy hh:mm tt PDT" }
      Dim dat As New Date(2016, 8, 18, 16, 50, 0)
      ' Display the result string. 
      Console.WriteLine(dat.ToString(formats(1)))
      
      ' Parse a string. 
      Dim value As String = "25 Dec 2016 12:00 pm PST"
      Dim newDate As Date
      If Date.TryParseExact(value, formats, Nothing, 
                            DateTimeStyles.None, newDate) Then 
         Console.WriteLine(newDate)
      Else
         Console.WriteLine("Unable to parse '{0}'", value)
      End If                               
   End Sub
End Module
' The example displays the following output:
'       18 Aug 2016 04:50 PM PDT
'       12/25/2016 12:00:00 PM

Hay dos formas de indicar que los caracteres se han de interpretar como caracteres literales y no como caracteres de reserva, para que se puedan incluir en una cadena de resultado o analizarse correctamente en una cadena de entrada:There are two ways to indicate that characters are to be interpreted as literal characters and not as reserve characters, so that they can be included in a result string or successfully parsed in an input string:

En el ejemplo siguiente se incluyen los caracteres literales "pst" (para hora estándar del Pacífico) para representar la zona horaria local en una cadena de formato.The following example includes the literal characters "pst" (for Pacific Standard time) to represent the local time zone in a format string. Como "s" y "t" son cadenas de formato personalizado, ambos caracteres deben incluir un escape para interpretarse como literales de carácter.Because both "s" and "t" are custom format strings, both characters must be escaped to be interpreted as character literals.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      String format = "dd MMM yyyy hh:mm tt p\\s\\t";
      var dat = new DateTime(2016, 8, 18, 16, 50, 0);
      // Display the result string. 
      Console.WriteLine(dat.ToString(format));
      
      // Parse a string. 
      String value = "25 Dec 2016 12:00 pm pst";
      DateTime newDate;
      if (DateTime.TryParseExact(value, format, null, 
                                 DateTimeStyles.None, out newDate)) 
         Console.WriteLine(newDate);
      else
         Console.WriteLine("Unable to parse '{0}'", value);
   }
}
// The example displays the following output:
//       18 Aug 2016 04:50 PM PDT
//       12/25/2016 12:00:00 PM
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim fmt As String = "dd MMM yyyy hh:mm tt p\s\t" 
      Dim dat As New Date(2016, 8, 18, 16, 50, 0)
      ' Display the result string. 
      Console.WriteLine(dat.ToString(fmt))
      
      ' Parse a string. 
      Dim value As String = "25 Dec 2016 12:00 pm pst"
      Dim newDate As Date
      If Date.TryParseExact(value, fmt, Nothing, 
                            DateTimeStyles.None, newDate) Then 
         Console.WriteLine(newDate)
      Else
         Console.WriteLine("Unable to parse '{0}'", value)
      End If                               
   End Sub
End Module
' The example displays the following output:
'       18 Aug 2016 04:50 PM pst
'       12/25/2016 12:00:00 PM
  • Al incluir toda la cadena literal entre comillas o apóstrofes.By enclosing the entire literal string in quotation marks or apostrophes. El siguiente ejemplo es igual al anterior, excepto que "pst" se incluye entre comillas para indicar que toda la cadena delimitada debe interpretarse como literales de carácter.The following example is like the previous one, except that "pst" is enclosed in quotation marks to indicate that the entire delimited string should be interpreted as character literals.
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      String format = "dd MMM yyyy hh:mm tt \"pst\"";
      var dat = new DateTime(2016, 8, 18, 16, 50, 0);
      // Display the result string. 
      Console.WriteLine(dat.ToString(format));
      
      // Parse a string. 
      String value = "25 Dec 2016 12:00 pm pst";
      DateTime newDate;
      if (DateTime.TryParseExact(value, format, null, 
                                 DateTimeStyles.None, out newDate)) 
         Console.WriteLine(newDate);
      else
         Console.WriteLine("Unable to parse '{0}'", value);
   }
}
// The example displays the following output:
//       18 Aug 2016 04:50 PM PDT
//       12/25/2016 12:00:00 PM
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim fmt As String = "dd MMM yyyy hh:mm tt ""pst"""  
      Dim dat As New Date(2016, 8, 18, 16, 50, 0)
      ' Display the result string. 
      Console.WriteLine(dat.ToString(fmt))
      
      ' Parse a string. 
      Dim value As String = "25 Dec 2016 12:00 pm pst"
      Dim newDate As Date
      If Date.TryParseExact(value, fmt, Nothing, 
                            DateTimeStyles.None, newDate) Then 
         Console.WriteLine(newDate)
      Else
         Console.WriteLine("Unable to parse '{0}'", value)
      End If                               
   End Sub
End Module
' The example displays the following output:
'       18 Aug 2016 04:50 PM pst
'       12/25/2016 12:00:00 PM

NotasNotes

Usar especificadores de formato personalizado únicosUsing single custom format specifiers

Una cadena con formato de fecha y hora personalizado se compone de dos o más caracteres.A custom date and time format string consists of two or more characters. Los métodos de formato de fecha y hora interpretan cualquier cadena de un único carácter como una cadena de formato de fecha y hora estándar.Date and time formatting methods interpret any single-character string as a standard date and time format string. Si no reconocen el carácter como un especificador de formato válido, producen una excepción FormatException.If they don't recognize the character as a valid format specifier, they throw a FormatException. Por ejemplo, una cadena de formato que solo se compone del especificador "h" se interpreta como una cadena de formato de fecha y hora estándar.For example, a format string that consists only of the specifier "h" is interpreted as a standard date and time format string. Sin embargo, en este caso concreto, se produce una excepción porque no existe ningún especificador de formato de fecha y hora estándar "h".However, in this particular case, an exception is thrown because there is no "h" standard date and timeformat specifier.

Para usar cualquiera de los especificadores de formato de fecha y hora personalizado como el único especificador en una cadena de formato (es decir, usar el especificador de formato personalizado "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" o "/"), incluya un espacio delante o detrás del especificador, o incluya un especificador de formato de porcentaje ("%") delante del único especificador de fecha y hora personalizado.To use any of the custom date and time format specifiers as the only specifier in a format string (that is, to use the "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" custom format specifier by itself), include a space before or after the specifier, or include a percent ("%") format specifier before the single custom date and time specifier.

Por ejemplo, "%h" se interpreta como una cadena de formato de fecha y hora personalizado que muestra la hora representada por el valor de fecha y hora actual.For example, "%h" is interpreted as a custom date and time format string that displays the hour represented by the current date and time value. También puede usar la cadena de formato " h" o "h ", aunque esto incluye un espacio en la cadena de resultado junto con la hora.You can also use the " h" or "h " format string, although this includes a space in the result string along with the hour. En el ejemplo siguiente se muestran estas tres cadenas de formato.The following example illustrates these three format strings.

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

Console.WriteLine("'{0:%h}'", dat1);
Console.WriteLine("'{0: h}'", dat1);
Console.WriteLine("'{0:h }'", dat1);
// The example displays the following output:
//       '1'
//       ' 1'
//       '1 '
Dim dat1 As Date = #6/15/2009 1:45PM#

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

Usar el carácter de escapeUsing the Escape Character

Los caracteres "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" o "/" en una cadena de formato se interpretan como especificadores de formato personalizado en lugar de como caracteres literales.The "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" characters in a format string are interpreted as custom format specifiers rather than as literal characters. Para evitar que un carácter se interprete como un especificador de formato, puede precederlo de una barra diagonal inversa (\), que es el carácter de escape.To prevent a character from being interpreted as a format specifier, you can precede it with a backslash (\), which is the escape character. El carácter de escape significa que el siguiente carácter es un carácter literal que se debe incluir en la cadena de resultado sin modificar.The escape character signifies that the following character is a character literal that should be included in the result string unchanged.

Para incluir una barra diagonal inversa en una cadena de resultado, debe indicar su secuencia de escape con otra barra diagonal inversa (\\).To include a backslash in a result string, you must escape it with another backslash (\\).

Nota

Algunos compiladores, como los compiladores de C# y C++, también pueden interpretar un único carácter de barra diagonal inversa como un carácter de escape.Some compilers, such as the C++ and C# compilers, may also interpret a single backslash character as an escape character. Para asegurarse de que una cadena se interpreta correctamente al darle formato, puede usar el carácter literal de cadena textual (el carácter @) antes de la cadena en C# o puede agregar otro carácter de barra diagonal inversa delante de cada barra diagonal inversa en C# y C++.To ensure that a string is interpreted correctly when formatting, you can use the verbatim string literal character (the @ character) before the string in C#, or add another backslash character before each backslash in C# and C++. En el siguiente ejemplo de C# se muestran ambos enfoques.The following C# example illustrates both approaches.

En el ejemplo siguiente se usa el carácter de escape para evitar que la operación de formato interprete los caracteres "h" y "m" como especificadores de formato.The following example uses the escape character to prevent the formatting operation from interpreting the "h" and "m" characters as format specifiers.

DateTime date = new DateTime(2009, 06, 15, 13, 45, 30, 90);
string fmt1 = "h \\h m \\m";
string fmt2 = @"h \h m \m";

Console.WriteLine("{0} ({1}) -> {2}", date, fmt1, date.ToString(fmt1));
Console.WriteLine("{0} ({1}) -> {2}", date, fmt2, date.ToString(fmt2));
// The example displays the following output:
//       6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m
//       6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m      
Dim date1 As Date = #6/15/2009 13:45#
Dim fmt As String = "h \h m \m"

Console.WriteLine("{0} ({1}) -> {2}", date1, fmt, date1.ToString(fmt))
' The example displays the following output:
'       6/15/2009 1:45:00 PM (h \h m \m) -> 1 h 45 m      

Configuración del Panel de controlControl Panel settings

La configuración de Configuración regional y de idioma del Panel de control influye en la cadena de resultado generada por una operación de formato que incluye muchos de los especificadores de formato de fecha y hora personalizado.The Regional and Language Options settings in Control Panel influence the result string produced by a formatting operation that includes many of the custom date and time format specifiers. 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.These settings are used to initialize the DateTimeFormatInfo object associated with the current thread culture, which provides values used to govern formatting. Los equipos que usan configuraciones diferentes generarán cadenas de resultado distintas.Computers that use different settings generate different result strings.

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 .In addition, if you use the CultureInfo.CultureInfo(String) constructor to instantiate a new CultureInfo object that represents the same culture as the current system culture, any customizations established by the Regional and Language Options item in Control Panel will be applied to the new CultureInfo object. Puede usar el constructor CultureInfo.CultureInfo(String, Boolean) para crear un objeto CultureInfo que no refleje las personalizaciones de un sistema.You can use the CultureInfo.CultureInfo(String, Boolean) constructor to create a CultureInfo object that doesn't reflect a system's customizations.

Propiedades de DateTimeFormatInfoDateTimeFormatInfo properties

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.Formatting is influenced by properties of the current DateTimeFormatInfo object, which is provided implicitly by the current thread culture or explicitly by the IFormatProvider parameter of the method that invokes formatting. Para el parámetro IFormatProvider, debe especificar un objeto CultureInfo, que representa una referencia cultural, o un objeto DateTimeFormatInfo.For the IFormatProvider parameter, you should specify a CultureInfo object, which represents a culture, or a DateTimeFormatInfo object.

La cadena de resultado generada por muchos de los especificadores de formato de fecha y hora personalizado también depende de las propiedades del objeto DateTimeFormatInfo actual.The result string produced by many of the custom date and time format specifiers also depends on properties of the current DateTimeFormatInfo object. La aplicación puede modificar el resultado generado por algunos de los especificadores de formato de fecha y hora personalizado al cambiar la propiedad DateTimeFormatInfo correspondiente.Your application can change the result produced by some custom date and time format specifiers by changing the corresponding DateTimeFormatInfo property. Por ejemplo, el especificador de formato "ddd" agrega a la cadena de resultado el nombre abreviado de un día de la semana que se encuentra en la matriz de cadenas AbbreviatedDayNames.For example, the "ddd" format specifier adds an abbreviated weekday name found in the AbbreviatedDayNames string array to the result string. De igual forma, el especificador de formato "MMMM" agrega a la cadena de resultado el nombre completo de un mes que se encuentra en la matriz de cadenas MonthNames.Similarly, the "MMMM" format specifier adds a full month name found in the MonthNames string array to the result string.

Vea tambiénSee also