Cadeias de caracteres de formato de data e hora personalizadas

Uma cadeia de caracteres de formato de data e hora define a representação de texto de um DateTime ou DateTimeOffset valor que resulta de uma operação de formatação. Ele também pode definir a representação de um valor de data e hora que é necessário em uma operação de análise para converter com êxito a cadeia de caracteres em uma data e hora. Uma cadeia de caracteres de formato personalizado consiste em um ou mais especificadores de formato de data e hora personalizados. Qualquer cadeia de caracteres que não seja uma cadeia de caracteres de formato de data e hora padrão é interpretada como uma cadeia de caracteres de formato de data e hora personalizada.

Gorjeta

Você pode baixar o Utilitário de Formatação, um aplicativo .NET Core Windows Forms que permite aplicar cadeias de caracteres de formato a valores numéricos ou de data e hora e exibe a cadeia de caracteres de resultado. O código-fonte está disponível para C# e Visual Basic.

Cadeias de caracteres personalizadas de formato de data e hora podem ser usadas com valores DateTime e DateTimeOffset .

Nota

Alguns dos exemplos de C# neste artigo são executados no Try.NET corredor de código embutido e playground. Selecione o botão Executar para executar um exemplo em uma janela interativa. Depois de executar o código, você pode modificá-lo e executar o código modificado selecionando Executar novamente. O código modificado é executado na janela interativa ou, se a compilação falhar, a janela interativa exibe todas as mensagens de erro do compilador C#.

O fuso horário local do Try.NET corredor de código embutido e playground é Tempo Universal Coordenado ou UTC. Isso pode afetar o comportamento e a saída de exemplos que ilustram o DateTime, DateTimeOffset, e TimeZoneInfo tipos e seus membros.

Em operações de formatação, cadeias de caracteres de formato de data e hora personalizadas podem ser usadas com o ToString método de uma instância de data e hora ou com um método que ofereça suporte à formatação composta. O exemplo a seguir ilustra ambos os usos.

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

Em operações de análise, cadeias de caracteres personalizadas de formato de data e hora podem ser usadas com os DateTime.ParseExactmétodos , DateTime.TryParseExact, DateTimeOffset.ParseExacte DateTimeOffset.TryParseExact . Esses métodos exigem que uma cadeia de caracteres de entrada esteja exatamente em conformidade com um padrão específico para que a operação de análise seja bem-sucedida. O exemplo a seguir ilustra uma chamada para o DateTimeOffset.ParseExact(String, String, IFormatProvider) método para analisar uma data que deve incluir um dia, um mês e um ano de dois dígitos.

using System;
using System.Globalization;

public class Example1
{
    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.

A tabela a seguir descreve os especificadores de formato de data e hora personalizados e exibe uma cadeia de caracteres de resultado produzida por cada especificador de formato. Por padrão, as cadeias de caracteres de resultado refletem as convenções de formatação da cultura en-US. Se um especificador de formato específico produzir uma cadeia de caracteres de resultado localizada, o exemplo também anotará a cultura à qual a cadeia de caracteres de resultado se aplica. Para obter mais informações sobre como usar cadeias de caracteres de formato de data e hora personalizadas, consulte a seção Notas .

Especificador de formato Description Exemplos
"d" O dia do mês, de 1 a 31.

Para obter mais informações: O especificador de formato personalizado "d".
2009-06-01T13:45:30 -> 1

2009-06-15T13:45:30 -> 15
"DD" O dia do mês, de 01 a 31.

Para obter mais informações: O especificador de formato personalizado "dd".
2009-06-01T13:45:30 -> 01

2009-06-15T13:45:30 -> 15
"DDD" O nome abreviado do dia da semana.

Para obter mais informações: O especificador de formato personalizado "ddd".
2009-06-15T13:45:30 -> Seg (pt-BR)

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

2009-06-15T13:45:30 -> lun. (fr-FR)
"DDDD" O nome completo do dia da semana.

Para obter mais informações: O especificador de formato personalizado "dddd".
2009-06-15T13:45:30 -> Segunda-feira (pt-BR)

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

2009-06-15T13:45:30 -> lundi (fr-FR)
"f" Os décimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "f".
2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.05 -> 0
"ff" Os centésimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "ff".
2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> 00
"FFF" Os milissegundos em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "fff".
6/15/2009 13:45:30.617 -> 617

6/15/2009 13:45:30.0005 -> 000
"FFFF" Os dez milésimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "ffff".
2009-06-15T13:45:30.6175000 -> 6175

2009-06-15T13:45:30.0000500 -> 0000
"FFFFF" Os cem milésimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "fffff".
2009/06/15T13:45:30.6175400 -> 61754

6/15/2009 13:45:30.000005 -> 00000
"FFFFFF" Os milionésimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "ffffff".
2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> 000000
"FFFFFFFF" Os dez milionésimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "fffffff".
2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 0001150
"F" Se diferente de zero, os décimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "F".
2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.0500000 -> (sem saída)
"FF" Se diferente de zero, os centésimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "FF".
2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> (sem saída)
"FFF" Se for diferente de zero, os milissegundos em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "FFF".
2009-06-15T13:45:30.6170000 -> 617

2009-06-15T13:45:30.0005000 -> (sem saída)
"FFFF" Se diferente de zero, os dez milésimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "FFFF".
2009-06-15T13:45:30.5275000 -> 5275

2009-06-15T13:45:30.0000500 -> (sem saída)
"FFFFF" Se diferente de zero, os cem milésimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "FFFFF".
2009/06/15T13:45:30.6175400 -> 61754

2009-06-15T13:45:30.0000050 -> (sem saída)
"FFFFFF" Se diferente de zero, os milionésimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "FFFFFF".
2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> (sem saída)
"FFFFFFF" Se diferente de zero, os dez milionésimos de segundo em um valor de data e hora.

Para obter mais informações: O especificador de formato personalizado "FFFFFFF".
2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 000115
"g", "gg" O período ou época.

Para obter mais informações: O especificador de formato personalizado "g" ou "gg".
2009-06-15T13:45:30.6170000 -> A.D.
"h" A hora, usando um relógio de 12 horas de 1 a 12.

Para obter mais informações: O especificador de formato personalizado "h".
2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 1
"HH" A hora, usando um relógio de 12 horas de 01 a 12.

Para obter mais informações: O especificador de formato personalizado "hh".
2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 01
"H" A hora, usando um relógio de 24 horas de 0 a 23.

Para obter mais informações: O especificador de formato personalizado "H".
2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 13
"HH" A hora, usando um relógio de 24 horas de 00 a 23.

Para obter mais informações: O especificador de formato personalizado "HH".
2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 13
"K" Informações de fuso horário.

Para obter mais informações: O especificador de formato personalizado "K".
Com DateTime valores:

2009-06-15T13:45:30, Tipo não especificado ->

2009-06-15T13:45:30, Tipo utc -> Z

2009-06-15T13:45:30, Kind Local -> -07:00 (depende das configurações do computador local)

Com DateTimeOffset valores:

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

2009-06-15T08:45:30+00:00 --> +00:00
"m" O minuto, de 0 a 59.

Para obter mais informações: O especificador de formato personalizado "m".
2009-06-15T01:09:30 -> 9

2009-06-15T13:29:30 -> 29
"Milímetro" O minuto, de 00 a 59.

Para obter mais informações: O especificador de formato personalizado "mm".
2009-06-15T01:09:30 -> 09

2009/06/15T01:45:30 -> 45
"M" O mês, de 1 a 12.

Para obter mais informações: O especificador de formato personalizado "M".
2009-06-15T13:45:30 -> 6
"MM" O mês, de 01 a 12.

Para obter mais informações: O especificador de formato personalizado "MM".
2009-06-15T13:45:30 -> 06
"MMM" O nome abreviado do mês.

Para obter mais informações: O especificador de formato personalizado "MMM".
2009-06-15T13:45:30 -> jun (pt-BR)

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

2009-06-15T13:45:30 -> junho (zu-ZA)
"MMMM" O nome completo do mês.

Para obter mais informações: O especificador de formato personalizado "MMMM".
2009-06-15T13:45:30 -> junho (pt-BR)

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

2009-06-15T13:45:30 -> uJuni (zu-ZA)
"s" O segundo, de 0 a 59.

Para obter mais informações: O especificador de formato personalizado "s".
2009-06-15T13:45:09 -> 9
"SS" O segundo, de 00 a 59.

Para obter mais informações: O especificador de formato personalizado "ss".
2009-06-15T13:45:09 -> 09
"t" O primeiro caractere do designador AM/PM.

Para obter mais informações: O especificador de formato personalizado "t".
2009-06-15T13:45:30 -> P (pt-BR)

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

2009-06-15T13:45:30 -> (FR-FR)
"TT" O designador AM/PM.

Para obter mais informações: O especificador de formato personalizado "tt".
2009-06-15T13:45:30 -> PM (pt-BR)

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

2009-06-15T13:45:30 -> (FR-FR)
"Y" O ano, de 0 a 99.

Para obter mais informações: O especificador de formato personalizado "y".
0001-01-01T00:00:00 -> 1

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

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

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

2019-06-15T13:45:30 -> 19
"YY" O ano, de 00 a 99.

Para obter mais informações: O especificador de formato personalizado "yy".
0001-01-01T00:00:00 -> 01

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

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

2019-06-15T13:45:30 -> 19
"AAAA" O ano, com um mínimo de três dígitos.

Para obter mais informações: O especificador de formato personalizado "yyy".
0001-01-01T00:00:00 -> 001

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

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

2009-06-15T13:45:30 -> 2009
"AAAA" O ano como um número de quatro dígitos.

Para obter mais informações: O especificador de formato personalizado "yyyy".
0001-01-01T00:00:00 -> 0001

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

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

2009-06-15T13:45:30 -> 2009
"AAAAA" O ano como um número de cinco dígitos.

Para obter mais informações: O especificador de formato personalizado "yyyyy".
0001-01-01T00:00:00 -> 00001

2009-06-15T13:45:30 -> 02009
"Z" Deslocamento de horas do UTC, sem zeros à esquerda.

Para obter mais informações: O especificador de formato personalizado "z".
2009-06-15T13:45:30-07:00 -> -7
"zz" Horas deslocadas do UTC, com um zero à esquerda para um valor de um dígito.

Para obter mais informações: O especificador de formato personalizado "zz".
2009-06-15T13:45:30-07:00 -> -07
"zzz" Horas e minutos de deslocamento do UTC.

Para obter mais informações: O especificador de formato personalizado "zzz".
2009-06-15T13:45:30-07:00 -> -07:00
":" O separador de tempo.

Para obter mais informações: O especificador de formato personalizado ":".
2009-06-15T13:45:30 -> : (pt-BR)

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

2009-06-15T13:45:30 -> : (ja-JP)
"/" O separador de data.

Para obter mais informações: O especificador de formato personalizado "/".
2009-06-15T13:45:30 -> / (pt-BR)

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

2009-06-15T13:45:30 -> . (TR-TR)
"Corda"

'String'
Delimitador de cadeia de caracteres literal.

Mais informações: Literais de caracteres.
2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P

2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P
% Define o caractere a seguir como um especificador de formato personalizado.

Para obter mais informações: Usando especificadores de formato personalizado único.
2009-06-15T13:45:30 (%h) -> 1
\ O personagem de fuga.

Mais informações: Literais de caracteres e Usando o caractere de fuga.
2009-06-15T13:45:30 (h \h) -> 1 h
Qualquer outro personagem O caractere é copiado para a cadeia de caracteres de resultado inalterada.

Mais informações: Literais de caracteres.
2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A

As seções a seguir fornecem informações adicionais sobre cada especificador de formato de data e hora personalizado. Salvo indicação em contrário, cada especificador produz uma representação de cadeia de caracteres idêntica, independentemente de ser usada com um DateTime valor ou um DateTimeOffset valor.

Especificador de formato "d" do dia

O especificador de formato personalizado "d"

O especificador de formato personalizado "d" representa o dia do mês como um número de 1 a 31. Um dia de um dígito é formatado sem um zero à esquerda.

Se o especificador de formato "d" for usado sem outros especificadores de formato personalizados, ele será interpretado como o especificador de formato de data e hora padrão "d". Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir inclui o especificador de formato personalizado "d" em várias cadeias de caracteres de formato.

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                                                

Voltar à mesa

O especificador de formato personalizado "dd"

A cadeia de caracteres de formato personalizado "dd" representa o dia do mês como um número de 01 a 31. Um dia de um dígito é formatado com um zero à esquerda.

O exemplo a seguir inclui o especificador de formato personalizado "dd" em uma cadeia de caracteres de formato personalizado.

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

Voltar à mesa

O especificador de formato personalizado "ddd"

O especificador de formato personalizado "ddd" representa o nome abreviado do dia da semana. O nome abreviado localizado do dia da semana é recuperado da DateTimeFormatInfo.AbbreviatedDayNames propriedade da cultura atual ou especificada.

O exemplo a seguir inclui o especificador de formato personalizado "ddd" em uma cadeia de caracteres de formato personalizado.

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                                                

Voltar à mesa

O especificador de formato personalizado "dddd"

O especificador de formato personalizado "dddd" (mais qualquer número de especificadores "d" adicionais) representa o nome completo do dia da semana. O nome localizado do dia da semana é recuperado da DateTimeFormatInfo.DayNames propriedade da cultura atual ou especificada.

O exemplo a seguir inclui o especificador de formato personalizado "dddd" em uma cadeia de caracteres de formato personalizado.

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                                          

Voltar à mesa

Especificador de fração "f" em segundos minúsculos

O especificador de formato personalizado "f"

O especificador de formato personalizado "f" representa o dígito mais significativo da fração de segundos; ou seja, representa os décimos de segundo em um valor de data e hora.

Se o especificador de formato "f" for usado sem outros especificadores de formato, ele será interpretado como o especificador de formato de data e hora padrão "f". Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

Quando você usa especificadores de formato "f" como parte de uma cadeia de caracteres de formato fornecida para o ParseExactmétodo , TryParseExact, ParseExact, ou , o TryParseExact número de especificadores de formato "f" indica o número de dígitos mais significativos da fração de segundos que devem estar presentes para analisar com êxito a cadeia de caracteres.

O exemplo a seguir inclui o especificador de formato personalizado "f" em uma cadeia de caracteres de formato personalizado.

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

Voltar à mesa

O especificador de formato personalizado "ff"

O especificador de formato personalizado "ff" representa os dois dígitos mais significativos da fração de segundos; ou seja, representa os centésimos de segundo em um valor de data e hora.

O exemplo a seguir inclui o especificador de formato personalizado "FF" em uma cadeia de caracteres de formato personalizado.

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

Voltar à mesa

O especificador de formato personalizado "fff"

O especificador de formato personalizado "fff" representa os três dígitos mais significativos da fração de segundos; ou seja, representa os milissegundos em um valor de data e hora.

O exemplo a seguir inclui o especificador de formato personalizado "fff" em uma cadeia de caracteres de formato personalizado.

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

Voltar à mesa

O especificador de formato personalizado "ffff"

O especificador de formato personalizado "ffff" representa os quatro dígitos mais significativos da fração de segundos; ou seja, representa os dez milésimos de segundo em um valor de data e hora.

Embora seja possível exibir os dez milésimos de um segundo componente de um valor de tempo, esse valor pode não ser significativo. A precisão dos valores de data e hora depende da resolução do relógio do sistema. Nos sistemas operacionais Windows NT versão 3.5 (e posterior) e Windows Vista, a resolução do relógio é de aproximadamente 10-15 milissegundos.

Voltar à mesa

O especificador de formato personalizado "fffff"

O especificador de formato personalizado "fffff" representa os cinco dígitos mais significativos da fração de segundos; ou seja, representa os cem milésimos de segundo em um valor de data e hora.

Embora seja possível exibir os cem milésimos de um segundo componente de um valor de tempo, esse valor pode não ser significativo. A precisão dos valores de data e hora depende da resolução do relógio do sistema. Nos sistemas operacionais Windows NT 3.5 (e posterior) e Windows Vista, a resolução do relógio é de aproximadamente 10-15 milissegundos.

Voltar à mesa

O especificador de formato personalizado "ffffff"

O especificador de formato personalizado "ffffff" representa os seis dígitos mais significativos da fração de segundos; ou seja, representa os milionésimos de segundo em um valor de data e hora.

Embora seja possível exibir os milionésimos de um segundo componente de um valor de tempo, esse valor pode não ser significativo. A precisão dos valores de data e hora depende da resolução do relógio do sistema. Nos sistemas operacionais Windows NT 3.5 (e posterior) e Windows Vista, a resolução do relógio é de aproximadamente 10-15 milissegundos.

Voltar à mesa

O especificador de formato personalizado "fffffff"

O especificador de formato personalizado "fffffff" representa os sete dígitos mais significativos da fração de segundos; ou seja, representa os dez milionésimos de segundo em um valor de data e hora.

Embora seja possível exibir os dez milionésimos de um segundo componente de um valor de tempo, esse valor pode não ser significativo. A precisão dos valores de data e hora depende da resolução do relógio do sistema. Nos sistemas operacionais Windows NT 3.5 (e posterior) e Windows Vista, a resolução do relógio é de aproximadamente 10-15 milissegundos.

Voltar à mesa

Especificador de fração "F" em segundos maiúsculos

O especificador de formato personalizado "F"

O especificador de formato personalizado "F" representa o dígito mais significativo da fração de segundos; ou seja, representa os décimos de segundo em um valor de data e hora. Nada é exibido se o dígito for zero e o ponto decimal que segue o número de segundos também não é exibido.

Se o especificador de formato "F" for usado sem outros especificadores de formato, ele será interpretado como o especificador de formato de data e hora padrão "F". Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O número de especificadores de formato "F" usados com o ParseExactmétodo , TryParseExact, ParseExact, ou TryParseExact indica o número máximo de dígitos mais significativos da fração de segundos que podem estar presentes para analisar com êxito a cadeia de caracteres.

O exemplo a seguir inclui o especificador de formato personalizado "F" em uma cadeia de caracteres de formato personalizado.

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

Voltar à mesa

O especificador de formato personalizado "FF"

O especificador de formato personalizado "FF" representa os dois dígitos mais significativos da fração de segundos; ou seja, representa os centésimos de segundo em um valor de data e hora. Os zeros à direita não são exibidos. Nada é exibido se os dois dígitos significativos forem zero e, nesse caso, a vírgula decimal que se segue ao número de segundos também não é exibida.

O exemplo a seguir inclui o especificador de formato personalizado "FF" em uma cadeia de caracteres de formato personalizado.

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

Voltar à mesa

O especificador de formato personalizado "FFF"

O especificador de formato personalizado "FFF" representa os três dígitos mais significativos da fração de segundos; ou seja, representa os milissegundos em um valor de data e hora. Os zeros à direita não são exibidos. Nada é exibido se os três dígitos significativos forem zero e, nesse caso, a vírgula decimal que se segue ao número de segundos também não é exibida.

O exemplo a seguir inclui o especificador de formato personalizado "FFF" em uma cadeia de caracteres de formato personalizado.

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

Voltar à mesa

O especificador de formato personalizado "FFFF"

O especificador de formato personalizado "FFFF" representa os quatro dígitos mais significativos da fração de segundos; ou seja, representa os dez milésimos de segundo em um valor de data e hora. Os zeros à direita não são exibidos. Nada é exibido se os quatro dígitos significativos forem zero e, nesse caso, a vírgula decimal que se segue ao número de segundos também não é exibida.

Embora seja possível exibir os dez milésimos de um segundo componente de um valor de tempo, esse valor pode não ser significativo. A precisão dos valores de data e hora depende da resolução do relógio do sistema. Nos sistemas operacionais Windows NT 3.5 (e posterior) e Windows Vista, a resolução do relógio é de aproximadamente 10-15 milissegundos.

Voltar à mesa

O especificador de formato personalizado "FFFFF"

O especificador de formato personalizado "FFFFF" representa os cinco dígitos mais significativos da fração de segundos; ou seja, representa os cem milésimos de segundo em um valor de data e hora. Os zeros à direita não são exibidos. Nada é exibido se os cinco dígitos significativos forem zero e, nesse caso, o ponto decimal que segue o número de segundos também não é exibido.

Embora seja possível exibir os cem milésimos de um segundo componente de um valor de tempo, esse valor pode não ser significativo. A precisão dos valores de data e hora depende da resolução do relógio do sistema. Nos sistemas operacionais Windows NT 3.5 (e posterior) e Windows Vista, a resolução do relógio é de aproximadamente 10-15 milissegundos.

Voltar à mesa

O especificador de formato personalizado "FFFFFF"

O especificador de formato personalizado "FFFFFF" representa os seis dígitos mais significativos da fração de segundos; ou seja, representa os milionésimos de segundo em um valor de data e hora. Os zeros à direita não são exibidos. Nada é exibido se os seis dígitos significativos forem zero e, nesse caso, a vírgula decimal que se segue ao número de segundos também não é exibida.

Embora seja possível exibir os milionésimos de um segundo componente de um valor de tempo, esse valor pode não ser significativo. A precisão dos valores de data e hora depende da resolução do relógio do sistema. Nos sistemas operacionais Windows NT 3.5 (e posterior) e Windows Vista, a resolução do relógio é de aproximadamente 10-15 milissegundos.

Voltar à mesa

O especificador de formato personalizado "FFFFFFF"

O especificador de formato personalizado "FFFFFFF" representa os sete dígitos mais significativos da fração de segundos; ou seja, representa os dez milionésimos de segundo em um valor de data e hora. Os zeros à direita não são exibidos. Nada é exibido se os sete dígitos significativos forem zero e, nesse caso, a vírgula decimal que se segue ao número de segundos também não é exibida.

Embora seja possível exibir os dez milionésimos de um segundo componente de um valor de tempo, esse valor pode não ser significativo. A precisão dos valores de data e hora depende da resolução do relógio do sistema. Nos sistemas operacionais Windows NT 3.5 (e posterior) e Windows Vista, a resolução do relógio é de aproximadamente 10-15 milissegundos.

Voltar à mesa

Especificador de formato "g" da era

O especificador de formato personalizado "g" ou "gg"

Os especificadores de formato personalizado "g" ou "gg" (mais qualquer número de especificadores "g" adicionais) representam o período ou era, como A.D. A operação de formatação ignorará esse especificador se a data a ser formatada não tiver uma cadeia de caracteres de período ou era associada.

Se o especificador de formato "g" for usado sem outros especificadores de formato personalizados, ele será interpretado como o especificador de formato de data e hora padrão "g". Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir inclui o especificador de formato personalizado "g" em uma cadeia de caracteres de formato personalizado.

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.

Voltar à mesa

Especificador de formato "h" de hora minúscula

O especificador de formato personalizado "h"

O especificador de formato personalizado "h" representa a hora como um número de 1 a 12; ou seja, a hora é representada por um relógio de 12 horas que conta todas as horas desde a meia-noite ou meio-dia. Uma determinada hora depois da meia-noite é indistinguível da mesma hora depois do meio-dia. A hora não é arredondada e uma hora de um dígito é formatada sem um zero à esquerda. Por exemplo, dado um tempo de 5:43 de manhã ou à tarde, este especificador de formato personalizado exibe "5".

Se o especificador de formato "h" for usado sem outros especificadores de formato personalizados, ele será interpretado como um especificador de formato de data e hora padrão e lançará um FormatException. Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir inclui o especificador de formato personalizado "h" em uma cadeia de caracteres de formato personalizado.

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 µ

Voltar à mesa

O especificador de formato personalizado "hh"

O especificador de formato personalizado "hh" (mais qualquer número de especificadores "h" adicionais) representa a hora como um número de 01 a 12; ou seja, a hora é representada por um relógio de 12 horas que conta todas as horas desde a meia-noite ou meio-dia. Uma determinada hora depois da meia-noite é indistinguível da mesma hora depois do meio-dia. A hora não é arredondada e uma hora de um dígito é formatada com um zero à esquerda. Por exemplo, dado um tempo de 5:43 de manhã ou à tarde, este especificador de formato exibe "05".

O exemplo a seguir inclui o especificador de formato personalizado "hh" em uma cadeia de caracteres de formato personalizado.

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.

Voltar à mesa

Especificador de formato "H" de hora maiúscula

O especificador de formato personalizado "H"

O especificador de formato personalizado "H" representa a hora como um número de 0 a 23; ou seja, a hora é representada por um relógio de 24 horas baseado em zero que conta as horas desde a meia-noite. Uma hora de um dígito é formatada sem um zero à esquerda.

Se o especificador de formato "H" for usado sem outros especificadores de formato personalizados, ele será interpretado como um especificador de formato de data e hora padrão e lançará um FormatException. Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir inclui o especificador de formato personalizado "H" em uma cadeia de caracteres de formato personalizado.

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                        

Voltar à mesa

O especificador de formato personalizado "HH"

O especificador de formato personalizado "HH" (mais qualquer número de especificadores "H" adicionais) representa a hora como um número de 00 a 23; ou seja, a hora é representada por um relógio de 24 horas baseado em zero que conta as horas desde a meia-noite. Uma hora de um dígito é formatada com um zero à esquerda.

O exemplo a seguir inclui o especificador de formato personalizado "HH" em uma cadeia de caracteres de formato personalizado.

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                        

Voltar à mesa

Especificador de formato de fuso horário "K"

O especificador de formato personalizado "K"

O especificador de formato personalizado "K" representa as informações de fuso horário de um valor de data e hora. Quando esse especificador de formato é usado com DateTime valores, a cadeia de caracteres de resultado é definida pelo valor da DateTime.Kind propriedade:

  • Para o fuso horário local (um DateTime.Kind valor de propriedade de ), este especificador produz uma cadeia de DateTimeKind.Localresultados contendo o deslocamento local do Tempo Universal Coordenado (UTC), por exemplo, "-07:00".

  • Para uma hora UTC (um DateTime.Kind valor de propriedade de ), a cadeia de caracteres de DateTimeKind.Utcresultado inclui um caractere "Z" para representar uma data UTC.

  • Para um tempo de um fuso horário não especificado (um tempo cuja DateTime.Kind propriedade é DateTimeKind.Unspecifiedigual a ), o resultado é equivalente a String.Empty.

Para DateTimeOffset valores, o especificador de formato "K" é equivalente ao especificador de formato "zzz" e produz uma cadeia de resultados contendo o DateTimeOffset deslocamento do valor do UTC.

Se o especificador de formato "K" for usado sem outros especificadores de formato personalizados, ele será interpretado como um especificador de formato de data e hora padrão e lançará um FormatException. Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir exibe a cadeia de caracteres que resulta do uso do especificador de formato personalizado "K" com vários DateTime e DateTimeOffset valores em um sistema no fuso horário do Pacífico dos EUA.

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                        

Voltar à mesa

Especificador de formato minuto "m"

O especificador de formato personalizado "m"

O especificador de formato personalizado "m" representa o minuto como um número de 0 a 59. O minuto representa minutos inteiros que se passaram desde a última hora. Um minuto de um dígito é formatado sem um zero à esquerda.

Se o especificador de formato "m" for usado sem outros especificadores de formato personalizados, ele será interpretado como o especificador de formato de data e hora padrão "m". Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir inclui o especificador de formato personalizado "m" em uma cadeia de caracteres de formato personalizado.

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 µ

Voltar à mesa

O especificador de formato personalizado "mm"

O especificador de formato personalizado "mm" (mais qualquer número de especificadores "m" adicionais) representa o minuto como um número de 00 a 59. O minuto representa minutos inteiros que se passaram desde a última hora. Um minuto de um dígito é formatado com um zero à esquerda.

O exemplo a seguir inclui o especificador de formato personalizado "mm" em uma cadeia de caracteres de formato personalizado.

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.

Voltar à mesa

Especificador de formato "M" do mês

O especificador de formato personalizado "M"

O especificador de formato personalizado "M" representa o mês como um número de 1 a 12 (ou de 1 a 13 para calendários com 13 meses). Um mês de um dígito é formatado sem um zero à esquerda.

Se o especificador de formato "M" for usado sem outros especificadores de formato personalizados, ele será interpretado como o especificador de formato de data e hora padrão "M". Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir inclui o especificador de formato personalizado "M" em uma cadeia de caracteres de formato personalizado.

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                       

Voltar à mesa

O especificador de formato personalizado "MM"

O especificador de formato personalizado "MM" representa o mês como um número de 01 a 12 (ou de 1 a 13 para calendários com 13 meses). Um mês de um dígito é formatado com um zero à esquerda.

O exemplo a seguir inclui o especificador de formato personalizado "MM" em uma cadeia de caracteres de formato personalizado.

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

Voltar à mesa

O especificador de formato personalizado "MMM"

O especificador de formato personalizado "MMM" representa o nome abreviado do mês. O nome abreviado localizado do mês é recuperado da DateTimeFormatInfo.AbbreviatedMonthNames propriedade da cultura atual ou especificada. Se houver um especificador de formato personalizado "d" ou "dd" na cadeia de caracteres de formato personalizado, ele será recuperado da DateTimeFormatInfo.AbbreviatedMonthGenitiveNames propriedade.

O exemplo a seguir inclui o especificador de formato personalizado "MMM" em uma cadeia de caracteres de formato personalizado.

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                                                

Voltar à mesa

O especificador de formato personalizado "MMMM"

O especificador de formato personalizado "MMMM" representa o nome completo do mês. O nome localizado do mês é recuperado da DateTimeFormatInfo.MonthNames propriedade da cultura atual ou especificada. Se houver um especificador de formato personalizado "d" ou "dd" na cadeia de caracteres de formato personalizado, ele será recuperado da DateTimeFormatInfo.MonthGenitiveNames propriedade.

O exemplo a seguir inclui o especificador de formato personalizado "MMMM" em uma cadeia de caracteres de formato personalizado.

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                                          

Voltar à mesa

Especificador de formato "s" de segundos

O especificador de formato personalizado "s"

O especificador de formato personalizado "s" representa os segundos como um número de 0 a 59. O resultado representa segundos inteiros que se passaram desde o último minuto. Um segundo de um dígito é formatado sem um zero à esquerda.

Se o especificador de formato "s" for usado sem outros especificadores de formato personalizados, ele será interpretado como o especificador de formato de data e hora padrão "s". Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir inclui o especificador de formato personalizado "s" em uma cadeia de caracteres de formato personalizado.

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 µ

Voltar à mesa

O especificador de formato personalizado "ss"

O especificador de formato personalizado "ss" (mais qualquer número de especificadores "s" adicionais) representa os segundos como um número de 00 a 59. O resultado representa segundos inteiros que se passaram desde o último minuto. Um segundo de um dígito é formatado com um zero à esquerda.

O exemplo a seguir inclui o especificador de formato personalizado "ss" em uma cadeia de caracteres de formato personalizado.

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.

Voltar à mesa

Especificador de formato Meridiem "t"

O especificador de formato personalizado "t"

O especificador de formato personalizado "t" representa o primeiro caractere do designador AM/PM. O designador localizado apropriado é recuperado da DateTimeFormatInfo.AMDesignator ou DateTimeFormatInfo.PMDesignator propriedade da cultura atual ou específica. O designador AM é usado para todos os horários das 0:00:00 (meia-noite) às 11:59:59.999. O designador PM é usado para todos os tempos das 12:00:00 (meio-dia) às 23:59:59.999.

Se o especificador de formato "t" for usado sem outros especificadores de formato personalizados, ele será interpretado como o especificador de formato de data e hora padrão "t". Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir inclui o especificador de formato personalizado "t" em uma cadeia de caracteres de formato personalizado.

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 µ

Voltar à mesa

O especificador de formato personalizado "tt"

O especificador de formato personalizado "tt" (mais qualquer número de especificadores "t" adicionais) representa todo o designador AM/PM. O designador localizado apropriado é recuperado da DateTimeFormatInfo.AMDesignator ou DateTimeFormatInfo.PMDesignator propriedade da cultura atual ou específica. O designador AM é usado para todos os horários das 0:00:00 (meia-noite) às 11:59:59.999. O designador PM é usado para todos os tempos das 12:00:00 (meio-dia) às 23:59:59.999.

Certifique-se de usar o especificador "tt" para idiomas para os quais é necessário manter a distinção entre AM e PM. Um exemplo é o japonês, para o qual os designadores AM e PM diferem no segundo caractere em vez do primeiro caractere.

O exemplo a seguir inclui o especificador de formato personalizado "tt" em uma cadeia de caracteres de formato personalizado.

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.

Voltar à mesa

Especificador de formato "y" do ano

O especificador de formato personalizado "y"

O especificador de formato personalizado "y" representa o ano como um número de um ou dois dígitos. Se o ano tiver mais de dois dígitos, apenas os dois dígitos de ordem baixa aparecem no resultado. Se o primeiro dígito de um ano de dois dígitos começar com um zero (por exemplo, 2008), o número será formatado sem um zero à esquerda.

Se o especificador de formato "y" for usado sem outros especificadores de formato personalizados, ele será interpretado como o especificador de formato de data e hora padrão "y". Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir inclui o especificador de formato personalizado "y" em uma cadeia de caracteres de formato personalizado.

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      

Voltar à mesa

O especificador de formato personalizado "yy"

O especificador de formato personalizado "yy" representa o ano como um número de dois dígitos. Se o ano tiver mais de dois dígitos, apenas os dois dígitos de ordem baixa aparecem no resultado. Se o ano de dois dígitos tiver menos de dois dígitos significativos, o número é preenchido com zeros à esquerda para produzir dois dígitos.

Em uma operação de análise, um ano de dois dígitos que é analisado usando o especificador de formato personalizado "yy" é interpretado com base na Calendar.TwoDigitYearMax propriedade do calendário atual do provedor de formato. O exemplo a seguir analisa a representação de cadeia de caracteres de uma data que tem um ano de dois dígitos usando o calendário gregoriano padrão da cultura en-US, que, neste caso, é a cultura atual. Em seguida, ele altera o objeto da CultureInfo cultura atual para usar um GregorianCalendar objeto cuja TwoDigitYearMax propriedade foi modificada.

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

public class Example7
{
    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

O exemplo a seguir inclui o especificador de formato personalizado "yy" em uma cadeia de caracteres de formato personalizado.

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      

Voltar à mesa

O especificador de formato personalizado "yyy"

O especificador de formato personalizado "aaa" representa o ano com um mínimo de três dígitos. Se o ano tiver mais de três dígitos significativos, eles serão incluídos na sequência de resultados. Se o ano tiver menos de três dígitos, o número é acolchoado com zeros à esquerda para produzir três dígitos.

Nota

Para o calendário budista tailandês, que pode ter anos de cinco dígitos, este especificador de formato exibe todos os dígitos significativos.

O exemplo a seguir inclui o especificador de formato personalizado "yyy" em uma cadeia de caracteres de formato personalizado.

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      

Voltar à mesa

O especificador de formato personalizado "aaaa"

O especificador de formato personalizado "aaaa" representa o ano com um mínimo de quatro dígitos. Se o ano tiver mais de quatro dígitos significativos, eles são incluídos na sequência de resultados. Se o ano tiver menos de quatro dígitos, o número é acolchoado com zeros à esquerda para produzir quatro dígitos.

Nota

Para o calendário budista tailandês, que pode ter anos de cinco dígitos, este especificador de formato exibe um mínimo de quatro dígitos.

O exemplo a seguir inclui o especificador de formato personalizado "aaaa" em uma cadeia de caracteres de formato personalizado.

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      

Voltar à mesa

O especificador de formato personalizado "aaaa"

O especificador de formato personalizado "aaaa" (mais qualquer número de especificadores "y" adicionais) representa o ano com um mínimo de cinco dígitos. Se o ano tiver mais de cinco dígitos significativos, eles serão incluídos na sequência de resultados. Se o ano tiver menos de cinco dígitos, o número é acolchoado com zeros à esquerda para produzir cinco dígitos.

Se houver especificadores "y" adicionais, o número é acolchoado com tantos zeros à esquerda quantos forem necessários para produzir o número de especificadores "y".

O exemplo a seguir inclui o especificador de formato personalizado "yyyyy" em uma cadeia de caracteres de formato personalizado.

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      

Voltar à mesa

Especificador de formato "z" deslocado

O especificador de formato personalizado "z"

Com DateTime valores, o especificador de formato personalizado "z" representa o deslocamento assinado do fuso horário especificado do Tempo Universal Coordenado (UTC), medido em horas. O deslocamento é sempre exibido com um sinal à esquerda. Um sinal de mais (+) indica horas antes do UTC, e um sinal de menos (-) indica horas atrás do UTC. Um deslocamento de um dígito é formatado sem um zero à esquerda.

A tabela a seguir mostra como o valor de deslocamento muda dependendo do DateTimeKind.

DateTimeKind valor Valor de deslocamento
Local O deslocamento assinado do fuso horário do sistema operacional local do UTC.
Unspecified O deslocamento assinado do fuso horário do sistema operacional local do UTC.
Utc +0 no .NET Core e no .NET 5+.

No .NET Framework, o deslocamento assinado do fuso horário do sistema operacional local do UTC.

Com DateTimeOffset valores, este especificador de formato representa o DateTimeOffset deslocamento do valor do UTC em horas.

Se o especificador de formato "z" for usado sem outros especificadores de formato personalizados, ele será interpretado como um especificador de formato de data e hora padrão e lançará um FormatException. Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

O exemplo a seguir inclui o especificador de formato personalizado "z" em uma cadeia de caracteres de formato personalizado.

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

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 on .NET Framework
' Displays +0, +00, +00:00 on .NET Core and .NET 5+

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

Voltar à mesa

O especificador de formato personalizado "zz"

Com DateTime valores, o especificador de formato personalizado "zz" representa o deslocamento assinado do fuso horário especificado do UTC, medido em horas. O deslocamento é sempre exibido com um sinal à esquerda. Um sinal de mais (+) indica horas antes do UTC, e um sinal de menos (-) indica horas atrás do UTC. Um deslocamento de um dígito é formatado com um zero à esquerda.

A tabela a seguir mostra como o valor de deslocamento muda dependendo do DateTimeKind.

DateTimeKind valor Valor de deslocamento
Local O deslocamento assinado do fuso horário do sistema operacional local do UTC.
Unspecified O deslocamento assinado do fuso horário do sistema operacional local do UTC.
Utc +00 no .NET Core e no .NET 5+.

No .NET Framework, o deslocamento assinado do fuso horário do sistema operacional local do UTC.

Com DateTimeOffset valores, este especificador de formato representa o DateTimeOffset deslocamento do valor do UTC em horas.

O exemplo a seguir inclui o especificador de formato personalizado "zz" em uma cadeia de caracteres de formato personalizado.

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

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 on .NET Framework
' Displays +0, +00, +00:00 on .NET Core and .NET 5+

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

Voltar à mesa

O especificador de formato personalizado "zzz"

Com DateTime valores, o especificador de formato personalizado "zzz" representa o deslocamento assinado do fuso horário especificado do UTC, medido em horas e minutos. O deslocamento é sempre exibido com um sinal à esquerda. Um sinal de mais (+) indica horas antes do UTC, e um sinal de menos (-) indica horas atrás do UTC. Um deslocamento de um dígito é formatado com um zero à esquerda.

A tabela a seguir mostra como o valor de deslocamento muda dependendo do DateTimeKind.

DateTimeKind valor Valor de deslocamento
Local O deslocamento assinado do fuso horário do sistema operacional local do UTC.
Unspecified O deslocamento assinado do fuso horário do sistema operacional local do UTC.
Utc +00:00 no .NET Core e no .NET 5+.

No .NET Framework, o deslocamento assinado do fuso horário do sistema operacional local do UTC.

Com DateTimeOffset valores, este especificador de formato representa o DateTimeOffset deslocamento do valor do UTC em horas e minutos.

O exemplo a seguir inclui o especificador de formato personalizado "zzz" em uma cadeia de caracteres de formato personalizado.

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

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 on .NET Framework
' Displays +0, +00, +00:00 on .NET Core and .NET 5+

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

Voltar à mesa

Especificadores separadores de data e hora

O especificador de formato personalizado ":"

O especificador de formato personalizado ":" representa o separador de tempo, que é usado para diferenciar horas, minutos e segundos. O separador de tempo localizado apropriado é recuperado da DateTimeFormatInfo.TimeSeparator propriedade da cultura atual ou especificada.

Nota

Para alterar o separador de hora para uma determinada cadeia de caracteres de data e hora, especifique o caractere separador dentro de um delimitador de cadeia de caracteres literal. Por exemplo, a cadeia de caracteres hh'_'dd'_'ss de formato personalizado produz uma cadeia de resultados na qual "_" (um sublinhado) é sempre usado como separador de tempo. Para alterar o separador de tempo para todas as datas de uma cultura, altere o valor da DateTimeFormatInfo.TimeSeparator propriedade da cultura atual ou instancie um DateTimeFormatInfo objeto, atribua o caractere à sua TimeSeparator propriedade e chame uma sobrecarga do método de formatação que inclui um IFormatProvider parâmetro.

Se o especificador de formato ":" for usado sem outros especificadores de formato personalizados, ele será interpretado como um especificador de formato de data e hora padrão e lançará um FormatExceptionarquivo . Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

Voltar à mesa

O especificador de formato personalizado "/"

O especificador de formato personalizado "/" representa o separador de data, que é usado para diferenciar anos, meses e dias. O separador de data localizado apropriado é recuperado da DateTimeFormatInfo.DateSeparator propriedade da cultura atual ou especificada.

Nota

Para alterar o separador de data para uma determinada cadeia de caracteres de data e hora, especifique o caractere separador dentro de um delimitador de cadeia de caracteres literal. Por exemplo, a cadeia de caracteres mm'/'dd'/'yyyy de formato personalizado produz uma cadeia de resultados na qual "/" é sempre usado como separador de data. Para alterar o separador de data para todas as datas de uma cultura, altere o valor da DateTimeFormatInfo.DateSeparator propriedade da cultura atual ou instancie um DateTimeFormatInfo objeto, atribua o caractere à sua DateSeparator propriedade e chame uma sobrecarga do método de formatação que inclui um IFormatProvider parâmetro.

Se o especificador de formato "/" for usado sem outros especificadores de formato personalizados, ele será interpretado como um especificador de formato de data e hora padrão e lançará um FormatExceptionarquivo . Para obter mais informações sobre como usar um especificador de formato único, consulte Usando especificadores de formato personalizado único mais adiante neste artigo.

Voltar à mesa

Literais de caracteres

Os seguintes caracteres em uma cadeia de caracteres de formato de data e hora personalizada são reservados e são sempre interpretados como caracteres de formatação ou, no caso de ", ', /, e \, como caracteres especiais.

  • F
  • H
  • K
  • M
  • d
  • f
  • g
  • h
  • m
  • s
  • t
  • y
  • z
  • %
  • :
  • /
  • "
  • '
  • \

Todos os outros caracteres são sempre interpretados como literais de caracteres e, em uma operação de formatação, são incluídos na cadeia de caracteres de resultado inalterada. Em uma operação de análise, eles devem corresponder exatamente aos caracteres na cadeia de caracteres de entrada; A comparação diferencia maiúsculas de minúsculas.

O exemplo a seguir inclui os caracteres literais "PST" (para Pacific Standard Time) e "PDT" (para Pacific Daylight Time) para representar o fuso horário local em uma cadeia de caracteres de formato. Observe que a cadeia de caracteres está incluída na cadeia de caracteres de resultado e que uma cadeia de caracteres que inclui a cadeia de caracteres de fuso horário local também analisa com êxito.

using System;
using System.Globalization;

public class Example5
{
    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

Há duas maneiras de indicar que os caracteres devem ser interpretados como caracteres literais e não como caracteres de reserva, para que possam ser incluídos em uma cadeia de caracteres de resultado ou analisados com êxito em uma cadeia de caracteres de entrada:

  • Escapando de cada personagem reservado. Para obter mais informações, consulte Usando o caractere de escape.

O exemplo a seguir inclui os caracteres literais "pst" (para a hora padrão do Pacífico) para representar o fuso horário local em uma cadeia de caracteres de formato. Como "s" e "t" são cadeias de caracteres de formato personalizado, ambos os caracteres devem ser escapados para serem interpretados como literais de caracteres.

using System;
using System.Globalization;

public class Example3
{
    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 pst
//       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
  • Colocando toda a cadeia literal entre aspas ou apóstrofos. O exemplo a seguir é como o anterior, exceto que "pst" está entre aspas para indicar que toda a cadeia de caracteres delimitada deve ser interpretada como literais de caracteres.
using System;
using System.Globalization;

public class Example6
{
    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 pst
//       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

Notas

Usando especificadores de formato personalizado único

Uma cadeia de caracteres de formato de data e hora personalizada consiste em dois ou mais caracteres. Os métodos de formatação de data e hora interpretam qualquer cadeia de caracteres de um único caractere como uma cadeia de caracteres de formato de data e hora padrão. Se eles não reconhecerem o caractere como um especificador de formato válido, eles lançarão um FormatExceptionarquivo . Por exemplo, uma cadeia de caracteres de formato que consiste apenas no especificador "h" é interpretada como uma cadeia de caracteres de formato de data e hora padrão. No entanto, neste caso específico, uma exceção é lançada porque não há um especificador de formato de data e hora padrão "h".

Para usar qualquer um dos especificadores de formato de data e hora personalizados como o único especificador em uma cadeia de caracteres de formato (ou seja, para usar o especificador de formato personalizado "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" ou "/", especificador de formato personalizado por si só), inclua um espaço antes ou depois do especificador de formato ou inclua um especificador de formato de porcentagem ("%") antes do especificador de data e hora personalizado único.

Por exemplo, "%h" é interpretado como uma cadeia de caracteres de formato de data e hora personalizada que exibe a hora representada pelo valor de data e hora atual. Você também pode usar a cadeia de caracteres de formato " h" ou "h ", embora isso inclua um espaço na cadeia de caracteres de resultado junto com a hora. O exemplo a seguir ilustra essas três cadeias de caracteres de formato.

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 '

Usando o caractere Escape

Os caracteres "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", ou "/" em uma cadeia de caracteres de formato são interpretados como especificadores de formato personalizado em vez de caracteres literais. Para evitar que um caractere seja interpretado como um especificador de formato, você pode precedê-lo com uma barra invertida (\), que é o caractere de escape. O caractere de escape significa que o caractere a seguir é um literal de caractere que deve ser incluído na cadeia de caracteres de resultado inalterada.

Para incluir uma barra invertida em uma cadeia de caracteres de resultado, você deve escapar dela com outra barra invertida (\\).

Nota

Alguns compiladores, como os compiladores C++ e C#, também podem interpretar um único caractere de barra invertida como um caractere de escape. Para garantir que uma cadeia de caracteres seja interpretada corretamente durante a formatação, você pode usar o caractere literal de cadeia de caracteres literal (o caractere @) antes da cadeia de caracteres em C# ou adicionar outro caractere de barra invertida antes de cada barra invertida em C# e C++. O exemplo C# a seguir ilustra ambas as abordagens.

O exemplo a seguir usa o caractere de escape para impedir que a operação de formatação interprete os caracteres "h" e "m" como especificadores de formato.

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      

Configurações do Painel de Controle

As configurações de Opções Regionais e de Idioma no Painel de Controle influenciam a cadeia de caracteres de resultado produzida por uma operação de formatação que inclui muitos dos especificadores de formato de data e hora personalizados. Essas configurações são usadas para inicializar o DateTimeFormatInfo objeto associado à cultura atual, que fornece valores usados para controlar a formatação. Computadores que usam configurações diferentes geram cadeias de resultados diferentes.

Além disso, se você usar o CultureInfo(String) construtor para instanciar um novo CultureInfo objeto que representa a mesma cultura que a cultura do sistema atual, todas as personalizações estabelecidas pelo item Opções Regionais e de Idioma no Painel de Controle serão aplicadas ao novo CultureInfo objeto. Você pode usar o CultureInfo(String, Boolean) construtor para criar um CultureInfo objeto que não reflete as personalizações de um sistema.

DateTimeFormatInfo propriedades

A formatação é influenciada pelas propriedades do objeto atual DateTimeFormatInfo , que é fornecido implicitamente pela cultura atual ou explicitamente pelo parâmetro do método que invoca a IFormatProvider formatação. Para o IFormatProvider parâmetro, você deve especificar um CultureInfo objeto, que representa uma cultura, ou um DateTimeFormatInfo objeto.

A cadeia de caracteres de resultado produzida por muitos dos especificadores de formato de data e hora personalizados também depende das propriedades do objeto atual DateTimeFormatInfo . Seu aplicativo pode alterar o resultado produzido por alguns especificadores de formato de data e hora personalizados alterando a propriedade correspondente DateTimeFormatInfo . Por exemplo, o especificador de formato "ddd" adiciona um nome abreviado de dia da semana encontrado na AbbreviatedDayNames matriz de cadeia de caracteres à cadeia de caracteres de resultado. Da mesma forma, o especificador de formato "MMMM" adiciona um nome de mês completo encontrado na matriz de MonthNames cadeia de caracteres à cadeia de caracteres de resultado.

Consulte também