Formato stringa per DateTime in C#

Formato stringa per DateTime in C#

In questo articolo imparerai come formattare DateTime usando il metodo di formato String in C#. Per la formattazione di DateTime , abbiamo usato il String.Format() metodo del String classe.

Nota: Tutta la formattazione DateTime può essere eseguita utilizzando DateTime.ToString() metodo.Nota: Le stringhe di formato di data e ora personalizzate possono essere utilizzate con entrambi DateTime e DateTimeOffset i valori.

Stringhe di formato di data e ora personalizzate

La tabella seguente descrive gli identificatori di formato di data e ora personalizzati e visualizza una stringa di risultato prodotta da ogni identificatore di formato. Per impostazione predefinita, le stringhe dei risultati riflettono le convenzioni di formattazione di en-US cultura.

Identificatore di formato Descrizione
"d" Il giorno del mese, da 1 a 31.
"dd" Il giorno del mese, dall'1 al 31.
"ddd" Il nome abbreviato del giorno della settimana.
"dddd" Il nome completo del giorno della settimana.
"f" I decimi di secondo in un valore di data e ora.
"ff" I centesimi di secondo in un valore di data e ora.
"fff" I millisecondi in un valore di data e ora.
"ffff" I decimillesimi di secondo in un valore di data e ora.
"fffff" I centomillesimi di secondo in un valore di data e ora.
"ffffff" I milionesimi di secondo in un valore di data e ora.
"fffffff" I dieci milionesimi di secondo in un valore di data e ora.
"F" Se diverso da zero, i decimi di secondo in un valore di data e ora.
"FF" Se diverso da zero, i centesimi di secondo in un valore di data e ora.
"FFF" Se diverso da zero, i millisecondi in un valore di data e ora.
"FFFF" Se diverso da zero, i decimillesimi di secondo in un valore di data e ora.
"FFFFF" Se diverso da zero, i centomillesimi di secondo in un valore di data e ora.
"FFFFFF" Se diverso da zero, i milionesimi di secondo in un valore di data e ora.
"FFFFFFFF" Se diverso da zero, i dieci milionesimi di secondo in un valore di data e ora.
"g", "gg" Il periodo o l'era.
"h" L'ora, utilizzando un formato di 12 ore da 1 a 12.
"hh" L'ora, utilizzando un formato di 12 ore dalle 01 alle 12.
"H" L'ora, utilizzando un formato 24 ore da 0 a 23.
"HH" L'ora, utilizzando un formato a 24 ore dalle 00 alle 23.
"K" Informazioni sul fuso orario.
"m" Il minuto, da 0 a 59.
"mm" Il minuto, da 00 a 59.
"M" Il mese, da 1 a 12.
"MM" Il mese, dall'1 al 12.
"MMM" Il nome abbreviato del mese.
"MMMM" Il nome completo del mese.
"s" Il secondo, da 0 a 59.
"ss" Il secondo, da 00 a 59.
"t" Il primo carattere del designatore AM/PM.
"tt" Il designatore AM/PM.
"y" L'anno, da 0 a 99.
"yy" L'anno, da 00 a 99.
"yyy" L'anno, con un minimo di tre cifre.
"yyyy" L'anno come numero a quattro cifre.
"yyyyy" L'anno come numero a cinque cifre.
"z" Ore sfalsate rispetto a UTC, senza zeri iniziali.
"zz" Ore sfalsate da UTC, con uno zero iniziale per un valore a una cifra.
"zzz" Ore e minuti sfalsati rispetto all'ora UTC.
":" Il separatore di tempo.
"/" Il separatore di data.

"stringa "

'stringa '
Delimitatore di stringa letterale.
% Definisce il seguente carattere come identificatore di formato personalizzato.
\ Il carattere di escape.
Qualsiasi altro carattere Il carattere viene copiato nella stringa del risultato invariato

Ecco l'esempio di formato data/ora personalizzato utilizzando String.Format() metodo in C#.

Esempio 1:formattazione personalizzata di data e ora utilizzando il metodo String.Format()
using System;

namespace Tutorialsrack
{
    class Program
    {
        /* How to Format DateTime Using String.Format() Method in C# */
        static void Main(string[] args)
        {
            // create date time 2006-05-08 21:05:07.123
            DateTime date = new DateTime(2006, 05, 08, 21, 5, 7, 123);

            Console.WriteLine(String.Format("{0:y yy yyy yyyy}", date));
            // Output ==> "6 06 006 2006"   year

            Console.WriteLine(String.Format("{0:M MM MMM MMMM}", date));
            // Output ==> "5 05 May May"  month

            Console.WriteLine(String.Format("{0:d dd ddd dddd}", date));
            // Output ==> "8 08 Mon Monday" day

            Console.WriteLine(String.Format("{0:h hh H HH}", date));
            // Output ==> "9 09 21 21"      hour 12/24

            Console.WriteLine(String.Format("{0:m mm}", date));
            // Output ==> "5 05"            minute

            Console.WriteLine(String.Format("{0:s ss}", date));
            // Output ==> "7 07"            second

            Console.WriteLine(String.Format("{0:f ff fff ffff}", date));
            // Output ==> "1 12 123 1230"   sec.fraction

            Console.WriteLine(String.Format("{0:F FF FFF FFFF}", date));
            // Output ==> "1 12 123 123"    without zeroes

            Console.WriteLine(String.Format("{0:t tt}", date));
            //Output ==> "P PM"            A.M. or P.M.

            Console.WriteLine(String.Format("{0:z zz zzz}", date));
            // Output ==> "+5 +05 +05:30"   time zone

            //Hit ENTER to exit the program
            Console.ReadKey();
        }
    }
}

Puoi anche utilizzare il separatore di data barra (/) Operatore e Separatore ora due punti (:) operatore al formato DateTime personalizzato utilizzando String.Format() .

Ecco l'esempio di data e ora con formato personalizzato utilizzando il separatore.

Esempio 2:formattazione personalizzata di data e ora
Console.WriteLine(String.Format("{0:dd/MM/yyyy hh:mm:ss tt}", date));
// Output ==> "08-05-2006 09:05:07 PM" - english (en-US)

// Date Separator in Turkish culture is "." 
// So Replace "/" with "." to print Turkish Date
Console.WriteLine(String.Format("{0:dd.MM.yyyy hh:mm:ss tt}", date));
// Output ==> "08.05.2006 09:05:07 PM" - Turkish (tr-TR)

Ecco alcuni esempi di formattazione personalizzata di data e ora utilizzando String.Format() Metodo.

Esempio 3:formattazione personalizzata di data e ora
            // Examples of Custom Date Time Formatting

            Console.WriteLine(String.Format("{0:dd/MM/yyyy hh:mm:ss tt}", date));
            // Output ==> "08-05-2006 09:05:07 PM"

            Console.WriteLine(String.Format("{0:MM/dd/yyyy hh:mm:ss tt}", date));
            // Output ==> "05-08-2006 09:05:07 PM"

            Console.WriteLine(String.Format("{0:MM/dd/yy hh:mm:ss tt}", date));
            // Output ==> "05-08-06 09:05:07 PM"

            Console.WriteLine(String.Format("{0:dd.MM.yyyy}", date));
            // Output ==> "08.05.2006"

            Console.WriteLine(String.Format("{0:d/M/yy hh:mm:ss tt}", date));
            // Output ==> "8-5-06 09:05:07 PM"

            Console.WriteLine(String.Format("{0:ddd, MMM dd, yyyy hh:mm:ss tt}", date));
            // Output ==> "Mon, May 08, 2006 09:05:07 PM"

            Console.WriteLine(String.Format("{0:dddd, MMM dd, yyyy hh:mm:ss tt}", date));
            // Output ==> "Monday, May 08, 2006 09:05:07 PM"

            Console.WriteLine(String.Format("{0:MMM dd, yyyy hh:mm:ss tt}", date));
            // Output ==> "May 08, 2006 09:05:07 PM"

            Console.WriteLine(String.Format("{0:dd-MMM-yyyy hh:mm:ss tt}", date));
            // Output ==> "08-May-2006 09:05:07 PM"

            Console.WriteLine(String.Format("{0:dd/MMM/yyyy}", date));
            // Output ==> "08-May-2006"

Formattazione DateTime standard

Una stringa di formato Data e ora standard utilizza un unico identificatore di formato per definire la rappresentazione testuale di un valore di data e ora.

Nota: Le stringhe di formato di data e ora standard possono essere utilizzate con entrambi DateTime e DateTimeOffset i valori.

La tabella seguente descrive gli identificatori di formato di data e ora standard e i relativi valori per en-US cultura. La prima colonna contiene gli identificatori di formato per String.Format() metodo.

# Identificatore di formato Descrizione Valori del modello
1 "d" Modello di data breve. M/g/aaaa
2 "D" Modello con data lunga. dddd, MMMM gg, aaaa
3 "f" Schema data/ora completo (tempo breve). dddd, MMMM gg, aaaa h:mm tt
4 "F" Modello di data/ora completo (molto tempo). dddd, MMMM dd, aaaa h:mm:ss tt
5 "g" Modello generale di data/ora (tempo breve). M/g/aaaa h:mm tt
6 "G" Modello generale di data/ora (molto tempo). M/g/aaaa h:mm:ss tt
7 "M", "m" Modello mese/giorno. MMMM gg
8 "O", "o" Schema data/ora di andata e ritorno.

Valori di data e ora:

aaaa'-'MM'-'dd'T'HH':'mm':'ss'.'ffffffK

Valori DateTimeOffset:

aaaa'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz

9 "R", "r" Modello RFC1123. gg, gg MMM aaaa HH':'mm':'ss 'GMT' (*)
10 "s" Modello di data/ora ordinabile. aaaa'-'MM'-'dd'T'HH':'mm':'ss (*)
11 "t" Modello di breve durata. h:mm tt
12 "T" Modello a lungo termine. h:mm:ss tt
13 "u" Modello di data/ora ordinabile universale.

aaaa'-'MM'-'dd HH':'mm':'ss'Z' (*)

(*) =indipendente dalla cultura

14 "U" Modello di data/ora completo universale.

gggg, MMMM gg, aaaa HH:mm:ss

15 "Y", "y" Modello anno mese.

MMMM, aaaa

Qualsiasi altro singolo carattere Identificatore sconosciuto.

Genera una FormatException di runtime.

Ecco alcuni esempi di formattazione standard di data e ora utilizzando String.Format() Metodo.

Esempio 4:formattazione standard di data e ora con il metodo fgString.Format()
using System;

namespace Tutorialsrack
{
    class Program
    {
        /* How to Format DateTime Using String.Format() Method in C# */
        static void Main(string[] args)
        {
            // create date time 2020-05-08 21:05:07.123
            DateTime date = new DateTime(2020, 05, 08, 21, 5, 7, 123);
            
            Console.WriteLine(String.Format("{0:t}", date));
            // Output ==> "9:05 PM"                        ShortTime

            Console.WriteLine(String.Format("{0:d}", date));
            // Output ==> "5/8/2020"                       ShortDate

            Console.WriteLine(String.Format("{0:T}", date));
            // Output ==> "9:05:07 PM"                     LongTime

            Console.WriteLine(String.Format("{0:D}", date));
            // Output ==> "Friday, May 8, 2020"            LongDate
            Console.WriteLine(String.Format("{0:f}", date));
            // Output ==> "Friday, May 8, 2020 9:05 PM"    LongDate+ShortTime

            Console.WriteLine(String.Format("{0:F}", date));
            // Output ==> "Friday, May 8, 2020 9:05:07 PM" FullDateTime

            Console.WriteLine(String.Format("{0:g}", date));
            // Output ==> "5/8/2020 9:05 PM"               ShortDate+ShortTime

            Console.WriteLine(String.Format("{0:G}", date));
            // Output ==> "5/8/2020 9:05:07 PM"            ShortDate+LongTime

            Console.WriteLine(String.Format("{0:m}", date));
            // Output ==> "May 8"                          MonthDay

            Console.WriteLine(String.Format("{0:y}", date));
            // Output ==> "May 2020"                       YearMonth

            Console.WriteLine(String.Format("{0:r}", date));
            // Output ==> "Fri, 08 May 2020 21:05:07 GMT"   RFC1123

            Console.WriteLine(String.Format("{0:o}", date));
            // Output ==> "2020-05-08T21:05:07.1230000"     Round-trip date/time 

            Console.WriteLine(String.Format("{0:s}", date));
            // Output ==> "2020-05-08T21:05:07"             SortableDateTime

            Console.WriteLine(String.Format("{0:u}", date));
            // Output ==> "2020-05-08 21:05:07Z"            UniversalSortableDateTime

            //Hit ENTER to exit the program
            Console.ReadKey();
        }
    }
}

Spero che questo articolo ti aiuti a capire come Formattare data e ora personalizzata e come formattare data e ora nel formato standard di data e ora utilizzando String.Format() Metodo in C#

Condividi il tuo prezioso feedback, per favore pubblica il tuo commento in fondo a questo articolo. Grazie!