Stringhe di formato data e ora standard
Aggiornamento: novembre 2007
Una stringa di formato di data e ora standard utilizza un unico identificatore di formato standard per definire la rappresentazione di testo di un valore di data e ora derivante da un'operazione di formattazione. Le stringhe di formato di data e ora contenenti più caratteri alfabetici, inclusi gli spazi, vengono interpretate come stringhe di formato di data e ora personalizzato.
Nota: |
---|
Le stringhe di formato di data e ora standard possono essere utilizzate con i valori DateTime e DateTimeOffset. |
Funzionamento delle stringhe di formato standard
Una stringa di formato standard è semplicemente un alias per una stringa di formato personalizzato. Il vantaggio dell'utilizzo di un alias per fare riferimento a una stringa di formato personalizzato è che, mentre l'alias è invariante, la stringa di formato personalizzato stessa può variare. Questo aspetto è importante perché le rappresentazioni di stringa di valori di data e ora variano in genere in base alle impostazioni cultura. Ad esempio, la stringa di formato standard d indica che un valore di data e ora deve essere visualizzato utilizzando uno schema di data breve. Per le impostazioni cultura invarianti questo schema è "MM/dd/yyyy". Per le impostazioni cultura fr-FR questo schema è "dd/MM/yyyy". Per le impostazioni cultura ja-JP questo schema è "yyyy/MM/dd".
Se viene eseguito il mapping di una stringa di formato standard alla stringa di formato personalizzato di impostazioni cultura particolari, nell'applicazione possono essere definite le impostazioni cultura specifiche le cui stringhe di formato personalizzato vengono utilizzate in una di queste modalità:
È possibile utilizzare le impostazioni cultura predefinite, o correnti. Nell'esempio seguente viene visualizzata una data utilizzando il formato di data breve delle impostazioni cultura correnti. In questo caso le impostazioni cultura correnti sono en-US.
' Display using current (en-us) culture's short date format Dim thisDate As Date = #03/15/2008# Console.WriteLine(thisDate.ToString("d")) ' Displays 3/15/2008
// Display using current (en-us) culture's short date format DateTime thisDate = new DateTime(2008, 3, 15); Console.WriteLine(thisDate.ToString("d")); // Displays 3/15/2008
È possibile passare un oggetto CultureInfo che rappresenta le impostazioni cultura di cui è necessario utilizzare la formattazione a un metodo con un parametro IFormatProvider. Nell'esempio seguente viene visualizzata una data utilizzando il formato di data breve delle impostazioni cultura pt-BR.
' Display using pt-BR culture's short date format Dim thisDate As Date = #03/15/2008# Dim culture As New CultureInfo("pt-BR") Console.WriteLine(thisDate.ToString("d", culture)) ' Displays 15/3/2008
// Display using pt-BR culture's short date format DateTime thisDate = new DateTime(2008, 3, 15); CultureInfo culture = new CultureInfo("pt-BR"); Console.WriteLine(thisDate.ToString("d", culture)); // Displays 15/3/2008
È possibile passare un oggetto DateTimeFormatInfo che fornisce informazioni di formattazione a un metodo con un parametro IFormatProvider. Nell'esempio seguente viene visualizzata una data utilizzando il formato di data breve da un oggetto DateTimeFormatInfo per le impostazioni cultura hr-HR.
' Display using date format information from hr-HR culture Dim thisDate As Date = #03/15/2008# Dim fmt As DateTimeFormatInfo = (New CultureInfo("hr-HR")).DateTimeFormat Console.WriteLine(thisDate.ToString("d", fmt)) ' Displays 15.3.2008
// Display using date format information from hr-HR culture DateTime thisDate = new DateTime(2008, 3, 15); DateTimeFormatInfo fmt = (new CultureInfo("hr-HR")).DateTimeFormat; Console.WriteLine(thisDate.ToString("d", fmt)); // Displays 15.3.2008
In alcuni casi la stringa di formato standard serve come una pratica abbreviazione per una stringa di formato personalizzato più lunga, che è invariante. In questa categoria rientrano quattro stringhe di formato standard: O (o o), R (o r), s e u. Queste stringhe corrispondono a stringhe di formato personalizzato definite dalle impostazioni cultura invarianti. Producono rappresentazioni di stringa di valori di data e ora che dovranno essere identiche nelle diverse impostazioni cultura. Nella tabella seguente vengono fornite le informazioni su questi quattro identificatori di formato di data e ora standard.
Stringa di formato standard |
Definita dalla proprietà DateTimeFormatInfo.InvariantInfo |
Stringa di formato personalizzato |
---|---|---|
O o o |
none |
yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzz |
R o r |
RFC1123Pattern |
ddd, dd MMM yyyy HH':'mm':'ss 'GMT' |
s |
SortableDateTimePattern |
yyyy'-'MM'-'dd'T'HH':'mm':'ss |
u |
UniversalSortableDateTimePattern |
yyyy'-'MM'-'dd HH':'mm':'ss'Z' |
Identificatori di formato di data e ora standard
Nella tabella seguente vengono descritti gli identificatori di formato di data e ora standard. Se non specificato diversamente, un particolare identificatore di formato di data e ora standard genera una rappresentazione di stringa identica, sia che venga utilizzato con un valore DateTime o con un valore DateTimeOffset.
Identificatore di formato |
Nome |
Descrizione |
---|---|---|
d |
Schema di data breve |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà ShortDatePattern corrente. Ad esempio, la stringa di formato personalizzato restituita dalla proprietà ShortDatePattern delle impostazioni cultura invarianti è "MM/dd/yyyy". Nell'esempio seguente viene utilizzato l'identificatore di formato d per visualizzare un valore di data e ora.
|
D |
Schema di data esteso |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà LongDatePattern corrente. La stringa di formato personalizzato per le impostazioni cultura invarianti ad esempio è "dddd, dd MMMM yyyy". Nell'esempio seguente viene utilizzato l'identificatore di formato D per visualizzare un valore di data e ora.
|
f |
Schema di data/ora completo (ora breve) |
Rappresenta una combinazione dello schema di data esteso (D) e dello schema di ora breve (t), separati da uno spazio. Nell'esempio seguente viene utilizzato l'identificatore di formato f per visualizzare un valore di data e ora.
|
F |
Schema di data/ora completo (ora estesa) |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà FullDateTimePattern corrente. La stringa di formato personalizzato per le impostazioni cultura invarianti ad esempio è "dddd, dd MMMM yyyy HH:mm:ss". Nell'esempio seguente viene utilizzato l'identificatore di formato F per visualizzare un valore di data e ora.
|
g |
Schema di data/ora generale (ora breve) |
Rappresenta una combinazione dello schema di data breve (d) e dello schema di ora breve (t), separati da uno spazio. Nell'esempio seguente viene utilizzato l'identificatore di formato g per visualizzare un valore di data e ora.
|
G |
Schema di data/ora generale (ora estesa) |
Rappresenta una combinazione dello schema di data breve (d) e dello schema di ora esteso (T), separati da uno spazio. Nell'esempio seguente viene utilizzato l'identificatore di formato G per visualizzare un valore di data e ora.
|
M, m |
Schema mese giorno |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà MonthDayPattern corrente. La stringa di formato personalizzato per le impostazioni cultura invarianti ad esempio è "MMMM dd". Nell'esempio seguente viene utilizzato l'identificatore di formato G per visualizzare un valore di data e ora.
|
O, o |
Schema di data/ora di riconversione |
Rappresenta una stringa di formato di data e ora personalizzato con uno schema che mantiene le informazioni sul fuso orario. Per i valori DateTime, questo identificatore di formato è progettato per mantenere valori di data e ora insieme alla proprietà Kind nel testo. La stringa formattata può quindi essere rianalizzata utilizzando il metodo Parse o ParseExact con il valore della proprietà Kind corretto. La stringa di formato personalizzato è "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK" per valori DateTime e "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz" per i valori DateTimeOffset. In questa stringa le coppie di apostrofi che delimitano singoli caratteri, ad esempio trattini, due punti e la lettera "T", indicano che il singolo carattere è un valore letterale che non può essere modificato. Gli apostrofi stessi non vengono visualizzati nella stringa di output. Lo schema per questo identificatore riflette uno standard definito (ISO 8601). Sarà pertanto sempre lo stesso, indipendentemente dalle impostazioni cultura utilizzate o dal provider di formato fornito. Le stringhe passate al metodo Parse o ParseExact devono essere esattamente conformi a questo schema di formato personalizzato, altrimenti viene generata un'eccezione FormatException. Quando viene utilizzato questo identificatore di formato standard, la formattazione o l'operazione di analisi utilizza sempre le impostazioni cultura invarianti. Nell'esempio seguente viene utilizzato l'identificatore di formato o per visualizzare un valore DateTime e un valore DateTimeOffset in un sistema nel fuso orario Ora solare Pacifico (Stati Uniti).
|
R, r |
Schema RFC1123 |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà DateTimeFormatInfo.RFC1123Pattern. Lo schema riflette uno standard definito e la proprietà è di sola lettura e pertanto sarà sempre lo stesso, indipendentemente dalle impostazioni cultura utilizzate o dal provider di formato fornito. La stringa di formato personalizzato è "ddd, dd MMM yyyy HH':'mm':'ss 'GMT". Quando viene utilizzato questo identificatore di formato standard, la formattazione o l'operazione di analisi utilizza sempre le impostazioni cultura invarianti. Con la formattazione non viene modificato il valore dell'oggetto DateTime o DateTimeOffset formattato. L'applicazione dovrà pertanto convertire il valore in formato UTC (Coordinated Universal Time) prima di utilizzare questo schema di formato. Nell'esempio seguente viene utilizzato l'identificatore di formato r per visualizzare un valore DateTime e un valore DateTimeOffset in un sistema nel fuso orario Ora solare Pacifico (Stati Uniti).
|
s |
Schema di data/ora ordinabile; conforme a ISO 8601 |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà DateTimeFormatInfo.SortableDateTimePattern. Lo schema riflette uno standard definito e la proprietà è di sola lettura e pertanto sarà sempre lo stesso, indipendentemente dalle impostazioni cultura utilizzate o dal provider di formato fornito. La stringa di formato personalizzato è "yyyy'-'MM'-'dd'T'HH':'mm':'ss". Quando viene utilizzato questo identificatore di formato standard, la formattazione o l'operazione di analisi utilizza sempre le impostazioni cultura invarianti. Nell'esempio seguente viene utilizzato l'identificatore di formato s per visualizzare un valore DateTime e un valore DateTimeOffset in un sistema nel fuso orario Ora solare Pacifico (Stati Uniti).
|
t |
Schema di ora breve |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà ShortTimePattern corrente. La stringa di formato personalizzato per le impostazioni cultura invarianti ad esempio è "HH:mm". Nell'esempio seguente viene utilizzato l'identificatore di formato t per visualizzare un valore di data e ora.
|
T |
Schema di ora esteso |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà LongTimePattern corrente. La stringa di formato personalizzato per le impostazioni cultura invarianti ad esempio è "HH:mm:ss". Nell'esempio seguente viene utilizzato l'identificatore di formato T per visualizzare un valore di data e ora.
|
u |
Schema di data/ora ordinabile universale |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà DateTimeFormatInfo.UniversalSortableDateTimePattern. Lo schema riflette uno standard definito e la proprietà è di sola lettura e pertanto sarà sempre lo stesso, indipendentemente dalle impostazioni cultura utilizzate o dal provider di formato fornito. La stringa di formato personalizzato è "yyyy'-'MM'-'dd HH':'mm':'ss'Z". Quando viene utilizzato questo identificatore di formato standard, la formattazione o l'operazione di analisi utilizza sempre le impostazioni cultura invarianti. La formattazione non converte il fuso orario per l'oggetto di data e ora. L'applicazione dovrà pertanto convertire la data e l'ora in formato UTC (Coordinated Universal Time) per utilizzare questo identificatore di formato. Nell'esempio seguente viene utilizzato l'identificatore di formato u per visualizzare un valore di data e ora.
|
U |
Schema di data/ora completo universale |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà FullDateTimePattern corrente. Lo schema corrisponde allo schema F. La formattazione agisce tuttavia sul valore UTC equivalente al valore DateTime. L'identificatore di formato U non è supportato dal tipo DateTimeOffset e genera un'eccezione FormatException se viene utilizzato per formattare un valore DateTimeOffset. Nell'esempio seguente viene utilizzato l'identificatore di formato T per visualizzare un valore di data e ora.
|
Y, y |
Schema anno mese |
Rappresenta una stringa di formato di data e ora personalizzato definita dalla proprietà YearMonthPattern corrente. La stringa di formato personalizzato per le impostazioni cultura invarianti ad esempio è "yyyy MMMM". Nell'esempio seguente viene utilizzato l'identificatore di formato y per visualizzare un valore di data e ora.
|
Qualsiasi altro carattere singolo |
Identificatore sconosciuto |
Genera un'eccezione FormatException in fase di esecuzione. |
Impostazioni del Pannello di controllo
Le impostazioni delle opzioni internazionali e della lingua nel Pannello di controllo influiscono sulla stringa di risultato prodotta da un'operazione di formattazione. Queste impostazioni vengono utilizzate per inizializzare l'oggetto DateTimeFormatInfo associato alle impostazioni cultura del thread corrente, che fornisce i valori utilizzati per definire la formattazione. Computer con impostazioni diverse generano stringhe di risultati diverse.
Inoltre, se viene utilizzato il costruttore CultureInfo.CultureInfo(String) per creare un'istanza di un nuovo oggetto CultureInfo che rappresenta le stesse impostazioni cultura delle impostazioni cultura del sistema correnti, le eventuali personalizzazioni definite dall'elemento Opzioni internazionali e della lingua nel Pannello Controllo verranno applicate al nuovo oggetto CultureInfo. È possibile utilizzare il metodo CreateSpecificCulture per creare un oggetto CultureInfo che non rifletta le personalizzazioni del sistema.
Proprietà DateTimeFormatInfo
La formattazione è influenzata dalle proprietà dell'oggetto DateTimeFormatInfo corrente fornito implicitamente dalle impostazioni cultura del thread corrente o esplicitamente dal parametro IFormatProvider del metodo di formattazione. Per il parametro IFormatProvider l'applicazione deve specificare un oggetto CultureInfo che rappresenta un tipo di impostazioni cultura o un oggetto DateTimeFormatInfo che rappresenta le convenzioni di formattazione di data e ora di impostazioni cultura particolari. Molti degli identificatori di formato di data e ora standard sono alias di schemi di formattazione definiti dalle proprietà dell'oggetto DateTimeFormatInfo corrente. Nell'applicazione può quindi essere modificato il risultato prodotto da alcuni identificatori di formato di data e ora personalizzato standard modificando gli schemi di formato di data e ora corrispondenti della proprietà DateTimeFormatInfo corrispondente.
Utilizzo delle stringhe di formato standard
Nel codice seguente viene descritto come utilizzare le stringhe di formato standard con valori DateTime.
Dim dt As DateTime = DateTime.Now
Dim dfi As DateTimeFormatInfo = New DateTimeFormatInfo()
Dim ci As CultureInfo = New CultureInfo("de-DE")
' Create a new custom DateTime pattern for demonstration.
dfi.MonthDayPattern = "MM-MMMM, ddd-dddd"
' Use the DateTimeFormat from the culture associated
' with the current thread.
Console.WriteLine( dt.ToString("d") )
Console.WriteLine( dt.ToString("m") )
' Use the DateTimeFormat from the specific culture passed.
Console.WriteLine( dt.ToString("d", ci ) )
' Use the settings from the DateTimeFormatInfo object passed.
Console.WriteLine( dt.ToString("m", dfi ) )
' Reset the current thread to a different culture.
Thread.CurrentThread.CurrentCulture = New CultureInfo("fr-BE")
Console.WriteLine( dt.ToString("d") )
' Use a CultureInfo with a format specifier to parse a string.
Dim culter As New CultureInfo("en-US")
Dim myDateTime As DateTime
myDateTime = DateTime.ParseExact("Tuesday, April 10, 2001", "D", culter)
Console.WriteLine(myDateTime.ToString("D"))
DateTime dt = DateTime.Now;
DateTimeFormatInfo dfi = new DateTimeFormatInfo();
CultureInfo ci = new CultureInfo("de-DE");
// Create a new custom DateTime pattern for demonstration.
dfi.MonthDayPattern = "MM-MMMM, ddd-dddd";
// Use the DateTimeFormat from the culture associated
// with the current thread.
Console.WriteLine( dt.ToString("d") );
Console.WriteLine( dt.ToString("m") );
// Use the DateTimeFormat from the specific culture passed.
Console.WriteLine( dt.ToString("d", ci ) );
// Use the settings from the DateTimeFormatInfo object passed.
Console.WriteLine( dt.ToString("m", dfi ) );
// Reset the current thread to a different culture.
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-BE");
Console.WriteLine( dt.ToString("d") );
// Use a CultureInfo with a format specifier to parse a string.
IFormatProvider culter = new CultureInfo("en-US");
DateTime myDateTime = DateTime.ParseExact("Tuesday, April 10, 2001", "D", culter);
Console.WriteLine(myDateTime.ToString("D"));
Esempio
Nell'esempio di codice seguente viene formattato un oggetto DateTime utilizzando le impostazioni cultura correnti del thread, impostazioni cultura specificate e tutti gli identificatori di formato di data e ora standard.
' This code example demonstrates the ToString(String) and
' ToString(String, IFormatProvider) methods for the DateTime
' type in conjunction with the standard date and time
' format specifiers.
Imports System
Imports System.Globalization
Imports System.Threading
Class Sample
Public Shared Sub Main()
Dim msgShortDate As String = "(d) Short date: . . . . . . . "
Dim msgLongDate As String = "(D) Long date:. . . . . . . . "
Dim msgShortTime As String = "(t) Short time: . . . . . . . "
Dim msgLongTime As String = "(T) Long time:. . . . . . . . "
Dim msgFullDateShortTime As String = _
"(f) Full date/short time: . . "
Dim msgFullDateLongTime As String = _
"(F) Full date/long time:. . . "
Dim msgGeneralDateShortTime As String = _
"(g) General date/short time:. "
Dim msgGeneralDateLongTime As String = _
"(G) General date/long time (default):" & vbCrLf & _
" . . . . . . . . . . . . . "
Dim msgMonth As String = "(M) Month:. . . . . . . . . . "
Dim msgRFC1123 As String = "(R) RFC1123:. . . . . . . . . "
Dim msgSortable As String = "(s) Sortable: . . . . . . . . "
Dim msgUniSortInvariant As String = _
"(u) Universal sortable (invariant):" & vbCrLf & _
" . . . . . . . . . . . . . "
Dim msgUniFull As String = "(U) Universal full date/time: "
Dim msgYear As String = "(Y) Year: . . . . . . . . . . "
Dim msgRoundtripLocal As String = "(o) Roundtrip (local):. . . . "
Dim msgRoundtripUTC As String = "(o) Roundtrip (UTC):. . . . . "
Dim msgRoundtripUnspecified As String = "(o) Roundtrip (Unspecified):. "
Dim msg1 As String = "Use ToString(String) and the current thread culture." & vbCrLf
Dim msg2 As String = "Use ToString(String, IFormatProvider) and a specified culture." & vbCrLf
Dim msgCulture As String = "Culture:"
Dim msgThisDate As String = "This date and time: {0}" & vbCrLf
Dim thisDate As DateTime = DateTime.Now
Dim utcDate As DateTime = thisDate.ToUniversalTime()
Dim unspecifiedDate As DateTime = new DateTime(2000, 3, 20, 13, 2, 3, 0, DateTimeKind.Unspecified)
Dim ci As CultureInfo
' Format the current date and time in various ways.
Console.Clear()
Console.WriteLine("Standard DateTime Format Specifiers:" & vbCrLf)
Console.WriteLine(msgThisDate, thisDate)
Console.WriteLine(msg1)
' Display the thread current culture, which is used to format the values.
ci = Thread.CurrentThread.CurrentCulture
Console.WriteLine("{0,-30}{1}" & vbCrLf, msgCulture, ci.DisplayName)
Console.WriteLine(msgShortDate & thisDate.ToString("d"))
Console.WriteLine(msgLongDate & thisDate.ToString("D"))
Console.WriteLine(msgShortTime & thisDate.ToString("t"))
Console.WriteLine(msgLongTime & thisDate.ToString("T"))
Console.WriteLine(msgFullDateShortTime & thisDate.ToString("f"))
Console.WriteLine(msgFullDateLongTime & thisDate.ToString("F"))
Console.WriteLine(msgGeneralDateShortTime & thisDate.ToString("g"))
Console.WriteLine(msgGeneralDateLongTime & thisDate.ToString("G"))
Console.WriteLine(msgMonth & thisDate.ToString("M"))
Console.WriteLine(msgRFC1123 & utcDate.ToString("R"))
Console.WriteLine(msgSortable & thisDate.ToString("s"))
Console.WriteLine(msgUniSortInvariant & utcDate.ToString("u"))
Console.WriteLine(msgUniFull & thisDate.ToString("U"))
Console.WriteLine(msgYear & thisDate.ToString("Y"))
Console.WriteLine(msgRoundtripLocal & thisDate.ToString("o"))
Console.WriteLine(msgRoundtripUTC & utcDate.ToString("o"))
Console.WriteLine(msgRoundtripUnspecified & unspecifiedDate.ToString("o"))
Console.WriteLine()
' Display the same values using a CultureInfo object. The CultureInfo class
' implements IFormatProvider.
Console.WriteLine(msg2)
' Display the culture used to format the values.
ci = New CultureInfo("de-DE")
Console.WriteLine("{0,-30}{1}" & vbCrLf, msgCulture, ci.DisplayName)
Console.WriteLine(msgShortDate & thisDate.ToString("d", ci))
Console.WriteLine(msgLongDate & thisDate.ToString("D", ci))
Console.WriteLine(msgShortTime & thisDate.ToString("t", ci))
Console.WriteLine(msgLongTime & thisDate.ToString("T", ci))
Console.WriteLine(msgFullDateShortTime & thisDate.ToString("f", ci))
Console.WriteLine(msgFullDateLongTime & thisDate.ToString("F", ci))
Console.WriteLine(msgGeneralDateShortTime & thisDate.ToString("g", ci))
Console.WriteLine(msgGeneralDateLongTime & thisDate.ToString("G", ci))
Console.WriteLine(msgMonth & thisDate.ToString("M", ci))
Console.WriteLine(msgRFC1123 & utcDate.ToString("R", ci))
Console.WriteLine(msgSortable & thisDate.ToString("s", ci))
Console.WriteLine(msgUniSortInvariant & utcDate.ToString("u", ci))
Console.WriteLine(msgUniFull & thisDate.ToString("U", ci))
Console.WriteLine(msgYear & thisDate.ToString("Y", ci))
Console.WriteLine(msgRoundtripLocal & thisDate.ToString("o"), ci)
Console.WriteLine(msgRoundtripUTC & utcDate.ToString("o"), ci)
Console.WriteLine(msgRoundtripUnspecified & unspecifiedDate.ToString("o"), ci)
Console.WriteLine()
End Sub 'Main
End Class 'Sample
'
'This code example produces the following results:
'
'Standard DateTime Format Specifiers:
'
'This date and time: 4/17/2006 2:29:09 PM
'
'Use ToString(String) and the current thread culture.
'
'Culture: English (United States)
'
'(d) Short date: . . . . . . . 4/17/2006
'(D) Long date:. . . . . . . . Monday, April 17, 2006
'(t) Short time: . . . . . . . 2:29 PM
'(T) Long time:. . . . . . . . 2:29:09 PM
'(f) Full date/short time: . . Monday, April 17, 2006 2:29 PM
'(F) Full date/long time:. . . Monday, April 17, 2006 2:29:09 PM
'(g) General date/short time:. 4/17/2006 2:29 PM
'(G) General date/long time (default):
' . . . . . . . . . . . . . 4/17/2006 2:29:09 PM
'(M) Month:. . . . . . . . . . April 17
'(R) RFC1123:. . . . . . . . . Mon, 17 Apr 2006 21:29:09 GMT
'(s) Sortable: . . . . . . . . 2006-04-17T14:29:09
'(u) Universal sortable (invariant):
' . . . . . . . . . . . . . 2006-04-17 21:29:09Z
'(U) Universal full date/time: Monday, April 17, 2006 9:29:09 PM
'(Y) Year: . . . . . . . . . . April, 2006
'(o) Roundtrip (local):. . . . 2006-04-17T14:29:09.3011250-07:00
'(o) Roundtrip (UTC):. . . . . 2006-04-17T21:29:09.3011250Z
'(o) Roundtrip (Unspecified):. 2000-03-20T13:02:03.0000000
'
'Use ToString(String, IFormatProvider) and a specified culture.
'
'Culture: German (Germany)
'
'(d) Short date: . . . . . . . 17.04.2006
'(D) Long date:. . . . . . . . Montag, 17. April 2006
'(t) Short time: . . . . . . . 14:29
'(T) Long time:. . . . . . . . 14:29:09
'(f) Full date/short time: . . Montag, 17. April 2006 14:29
'(F) Full date/long time:. . . Montag, 17. April 2006 14:29:09
'(g) General date/short time:. 17.04.2006 14:29
'(G) General date/long time (default):
' . . . . . . . . . . . . . 17.04.2006 14:29:09
'(M) Month:. . . . . . . . . . 17 April
'(R) RFC1123:. . . . . . . . . Mon, 17 Apr 2006 21:29:09 GMT
'(s) Sortable: . . . . . . . . 2006-04-17T14:29:09
'(u) Universal sortable (invariant):
' . . . . . . . . . . . . . 2006-04-17 21:29:09Z
'(U) Universal full date/time: Montag, 17. April 2006 21:29:09
'(Y) Year: . . . . . . . . . . April 2006
'(o) Roundtrip (local):. . . . 2006-04-17T14:29:09.3011250-07:00
'(o) Roundtrip (UTC):. . . . . 2006-04-17T21:29:09.3011250Z
'(o) Roundtrip (Unspecified):. 2000-03-20T13:02:03.0000000
// This code example demonstrates the ToString(String) and
// ToString(String, IFormatProvider) methods for the DateTime
// type in conjunction with the standard date and time
// format specifiers.
using System;
using System.Globalization;
using System.Threading;
class Sample
{
public static void Main()
{
string msgShortDate = "(d) Short date: . . . . . . . ";
string msgLongDate = "(D) Long date:. . . . . . . . ";
string msgShortTime = "(t) Short time: . . . . . . . ";
string msgLongTime = "(T) Long time:. . . . . . . . ";
string msgFullDateShortTime =
"(f) Full date/short time: . . ";
string msgFullDateLongTime =
"(F) Full date/long time:. . . ";
string msgGeneralDateShortTime =
"(g) General date/short time:. ";
string msgGeneralDateLongTime =
"(G) General date/long time (default):\n" +
" . . . . . . . . . . . . . ";
string msgMonth = "(M) Month:. . . . . . . . . . ";
string msgRFC1123 = "(R) RFC1123:. . . . . . . . . ";
string msgSortable = "(s) Sortable: . . . . . . . . ";
string msgUniSortInvariant =
"(u) Universal sortable (invariant):\n" +
" . . . . . . . . . . . . . ";
string msgUniFull = "(U) Universal full date/time: ";
string msgYear = "(Y) Year: . . . . . . . . . . ";
string msgRoundtripLocal = "(o) Roundtrip (local):. . . . ";
string msgRoundtripUTC = "(o) Roundtrip (UTC):. . . . . ";
string msgRoundtripUnspecified = "(o) Roundtrip (Unspecified):. ";
string msg1 = "Use ToString(String) and the current thread culture.\n";
string msg2 = "Use ToString(String, IFormatProvider) and a specified culture.\n";
string msgCulture = "Culture:";
string msgThisDate = "This date and time: {0}\n";
DateTime thisDate = DateTime.Now;
DateTime utcDate = thisDate.ToUniversalTime();
DateTime unspecifiedDate = new DateTime(2000, 3, 20, 13, 2, 3, 0, DateTimeKind.Unspecified);
CultureInfo ci;
// Format the current date and time in various ways.
Console.Clear();
Console.WriteLine("Standard DateTime Format Specifiers:\n");
Console.WriteLine(msgThisDate, thisDate);
Console.WriteLine(msg1);
// Display the thread current culture, which is used to format the values.
ci = Thread.CurrentThread.CurrentCulture;
Console.WriteLine("{0,-30}{1}\n", msgCulture, ci.DisplayName);
Console.WriteLine(msgShortDate + thisDate.ToString("d"));
Console.WriteLine(msgLongDate + thisDate.ToString("D"));
Console.WriteLine(msgShortTime + thisDate.ToString("t"));
Console.WriteLine(msgLongTime + thisDate.ToString("T"));
Console.WriteLine(msgFullDateShortTime + thisDate.ToString("f"));
Console.WriteLine(msgFullDateLongTime + thisDate.ToString("F"));
Console.WriteLine(msgGeneralDateShortTime + thisDate.ToString("g"));
Console.WriteLine(msgGeneralDateLongTime + thisDate.ToString("G"));
Console.WriteLine(msgMonth + thisDate.ToString("M"));
Console.WriteLine(msgRFC1123 + utcDate.ToString("R"));
Console.WriteLine(msgSortable + thisDate.ToString("s"));
Console.WriteLine(msgUniSortInvariant + utcDate.ToString("u"));
Console.WriteLine(msgUniFull + thisDate.ToString("U"));
Console.WriteLine(msgYear + thisDate.ToString("Y"));
Console.WriteLine(msgRoundtripLocal + thisDate.ToString("o"));
Console.WriteLine(msgRoundtripUTC + utcDate.ToString("o"));
Console.WriteLine(msgRoundtripUnspecified + unspecifiedDate.ToString("o"));
Console.WriteLine();
// Display the same values using a CultureInfo object. The CultureInfo class
// implements IFormatProvider.
Console.WriteLine(msg2);
// Display the culture used to format the values.
ci = new CultureInfo("de-DE");
Console.WriteLine("{0,-30}{1}\n", msgCulture, ci.DisplayName);
Console.WriteLine(msgShortDate + thisDate.ToString("d", ci));
Console.WriteLine(msgLongDate + thisDate.ToString("D", ci));
Console.WriteLine(msgShortTime + thisDate.ToString("t", ci));
Console.WriteLine(msgLongTime + thisDate.ToString("T", ci));
Console.WriteLine(msgFullDateShortTime + thisDate.ToString("f", ci));
Console.WriteLine(msgFullDateLongTime + thisDate.ToString("F", ci));
Console.WriteLine(msgGeneralDateShortTime + thisDate.ToString("g", ci));
Console.WriteLine(msgGeneralDateLongTime + thisDate.ToString("G", ci));
Console.WriteLine(msgMonth + thisDate.ToString("M", ci));
Console.WriteLine(msgRFC1123 + utcDate.ToString("R", ci));
Console.WriteLine(msgSortable + thisDate.ToString("s", ci));
Console.WriteLine(msgUniSortInvariant + utcDate.ToString("u", ci));
Console.WriteLine(msgUniFull + thisDate.ToString("U", ci));
Console.WriteLine(msgYear + thisDate.ToString("Y", ci));
Console.WriteLine(msgRoundtripLocal + thisDate.ToString("o", ci));
Console.WriteLine(msgRoundtripUTC + utcDate.ToString("o", ci));
Console.WriteLine(msgRoundtripUnspecified + unspecifiedDate.ToString("o", ci));
Console.WriteLine();
}
}
/*
This code example produces the following results:
Standard DateTime Format Specifiers:
This date and time: 4/17/2006 2:22:48 PM
Use ToString(String) and the current thread culture.
Culture: English (United States)
(d) Short date: . . . . . . . 4/17/2006
(D) Long date:. . . . . . . . Monday, April 17, 2006
(t) Short time: . . . . . . . 2:22 PM
(T) Long time:. . . . . . . . 2:22:48 PM
(f) Full date/short time: . . Monday, April 17, 2006 2:22 PM
(F) Full date/long time:. . . Monday, April 17, 2006 2:22:48 PM
(g) General date/short time:. 4/17/2006 2:22 PM
(G) General date/long time (default):
. . . . . . . . . . . . . 4/17/2006 2:22:48 PM
(M) Month:. . . . . . . . . . April 17
(R) RFC1123:. . . . . . . . . Mon, 17 Apr 2006 21:22:48 GMT
(s) Sortable: . . . . . . . . 2006-04-17T14:22:48
(u) Universal sortable (invariant):
. . . . . . . . . . . . . 2006-04-17 21:22:48Z
(U) Universal full date/time: Monday, April 17, 2006 9:22:48 PM
(Y) Year: . . . . . . . . . . April, 2006
(o) Roundtrip (local):. . . . 2006-04-17T14:22:48.2698750-07:00
(o) Roundtrip (UTC):. . . . . 2006-04-17T21:22:48.2698750Z
(o) Roundtrip (Unspecified):. 2000-03-20T13:02:03.0000000
Use ToString(String, IFormatProvider) and a specified culture.
Culture: German (Germany)
(d) Short date: . . . . . . . 17.04.2006
(D) Long date:. . . . . . . . Montag, 17. April 2006
(t) Short time: . . . . . . . 14:22
(T) Long time:. . . . . . . . 14:22:48
(f) Full date/short time: . . Montag, 17. April 2006 14:22
(F) Full date/long time:. . . Montag, 17. April 2006 14:22:48
(g) General date/short time:. 17.04.2006 14:22
(G) General date/long time (default):
. . . . . . . . . . . . . 17.04.2006 14:22:48
(M) Month:. . . . . . . . . . 17 April
(R) RFC1123:. . . . . . . . . Mon, 17 Apr 2006 21:22:48 GMT
(s) Sortable: . . . . . . . . 2006-04-17T14:22:48
(u) Universal sortable (invariant):
. . . . . . . . . . . . . 2006-04-17 21:22:48Z
(U) Universal full date/time: Montag, 17. April 2006 21:22:48
(Y) Year: . . . . . . . . . . April 2006
(o) Roundtrip (local):. . . . 2006-04-17T14:22:48.2698750-07:00
(o) Roundtrip (UTC):. . . . . 2006-04-17T21:22:48.2698750Z
(o) Roundtrip (Unspecified):. 2000-03-20T13:02:03.0000000
*/
// This code example demonstrates the ToString(String) and
// ToString(String, IFormatProvider) methods for the DateTime
// type in conjunction with the standard date and time
// format specifiers.
using namespace System;
using namespace System::Globalization;
using namespace System::Threading;
int main()
{
String^ msgShortDate = "(d) Short date: . . . . . . . ";
String^ msgLongDate = "(D) Long date:. . . . . . . . ";
String^ msgShortTime = "(t) Short time: . . . . . . . ";
String^ msgLongTime = "(T) Long time:. . . . . . . . ";
String^ msgFullDateShortTime =
"(f) Full date/short time: . . ";
String^ msgFullDateLongTime =
"(F) Full date/long time:. . . ";
String^ msgGeneralDateShortTime =
"(g) General date/short time:. ";
String^ msgGeneralDateLongTime =
"(G) General date/long time (default):\n" +
" . . . . . . . . . . . . . ";
String^ msgMonth = "(M) Month:. . . . . . . . . . ";
String^ msgRFC1123 = "(R) RFC1123:. . . . . . . . . ";
String^ msgSortable = "(s) Sortable: . . . . . . . . ";
String^ msgUniSortInvariant =
"(u) Universal sortable (invariant):\n" +
" . . . . . . . . . . . . . ";
String^ msgUniFull = "(U) Universal full date/time: ";
String^ msgYear = "(Y) Year: . . . . . . . . . . ";
String^ msgRoundtripLocal = "(o) Roundtrip (local):. . . . ";
String^ msgRoundtripUTC = "(o) Roundtrip (UTC):. . . . . ";
String^ msgRoundtripUnspecified = "(o) Roundtrip (Unspecified):. ";
String^ msg1 = "Use ToString(String) and the current thread culture.\n";
String^ msg2 = "Use ToString(String, IFormatProvider) and a specified culture.\n";
String^ msgCulture = "Culture:";
String^ msgThisDate = "This date and time: {0}\n";
DateTime^ thisDate = DateTime::Now;
DateTime^ utcDate = thisDate->ToUniversalTime();
DateTime^ unspecifiedDate = gcnew DateTime(2000, 3, 20, 13, 2, 3, 0, DateTimeKind::Unspecified);
CultureInfo^ ci;
// Format the current date and time in various ways.
Console::Clear();
Console::WriteLine("Standard DateTime Format Specifiers:\n");
Console::WriteLine(msgThisDate, thisDate);
Console::WriteLine(msg1);
// Display the thread current culture, which is used to format the values.
ci = Thread::CurrentThread->CurrentCulture;
Console::WriteLine("{0,-30}{1}\n", msgCulture, ci->DisplayName);
Console::WriteLine(msgShortDate + thisDate->ToString("d"));
Console::WriteLine(msgLongDate + thisDate->ToString("D"));
Console::WriteLine(msgShortTime + thisDate->ToString("t"));
Console::WriteLine(msgLongTime + thisDate->ToString("T"));
Console::WriteLine(msgFullDateShortTime + thisDate->ToString("f"));
Console::WriteLine(msgFullDateLongTime + thisDate->ToString("F"));
Console::WriteLine(msgGeneralDateShortTime + thisDate->ToString("g"));
Console::WriteLine(msgGeneralDateLongTime + thisDate->ToString("G"));
Console::WriteLine(msgMonth + thisDate->ToString("M"));
Console::WriteLine(msgRFC1123 + utcDate->ToString("R"));
Console::WriteLine(msgSortable + thisDate->ToString("s"));
Console::WriteLine(msgUniSortInvariant + utcDate->ToString("u"));
Console::WriteLine(msgUniFull + thisDate->ToString("U"));
Console::WriteLine(msgYear + thisDate->ToString("Y"));
Console::WriteLine(msgRoundtripLocal + thisDate->ToString("o"));
Console::WriteLine(msgRoundtripUTC + utcDate->ToString("o"));
Console::WriteLine(msgRoundtripUnspecified + unspecifiedDate->ToString("o"));
Console::WriteLine();
// Display the same values using a CultureInfo object. The CultureInfo class
// implements IFormatProvider.
Console::WriteLine(msg2);
// Display the culture used to format the values.
ci = gcnew CultureInfo("de-DE");
Console::WriteLine("{0,-30}{1}\n", msgCulture, ci->DisplayName);
Console::WriteLine(msgShortDate + thisDate->ToString("d", ci));
Console::WriteLine(msgLongDate + thisDate->ToString("D", ci));
Console::WriteLine(msgShortTime + thisDate->ToString("t", ci));
Console::WriteLine(msgLongTime + thisDate->ToString("T", ci));
Console::WriteLine(msgFullDateShortTime + thisDate->ToString("f", ci));
Console::WriteLine(msgFullDateLongTime + thisDate->ToString("F", ci));
Console::WriteLine(msgGeneralDateShortTime + thisDate->ToString("g", ci));
Console::WriteLine(msgGeneralDateLongTime + thisDate->ToString("G", ci));
Console::WriteLine(msgMonth + thisDate->ToString("M", ci));
Console::WriteLine(msgRFC1123 + utcDate->ToString("R", ci));
Console::WriteLine(msgSortable + thisDate->ToString("s", ci));
Console::WriteLine(msgUniSortInvariant + utcDate->ToString("u", ci));
Console::WriteLine(msgUniFull + thisDate->ToString("U", ci));
Console::WriteLine(msgYear + thisDate->ToString("Y", ci));
Console::WriteLine(msgRoundtripLocal + thisDate->ToString("o", ci));
Console::WriteLine(msgRoundtripUTC + utcDate->ToString("o", ci));
Console::WriteLine(msgRoundtripUnspecified + unspecifiedDate->ToString("o", ci));
Console::WriteLine();
}
/*
This code example produces the following results:
Standard DateTime Format Specifiers:
This date and time: 4/17/2006 2:38:09 PM
Use ToString(String) and the current thread culture.
Culture: English (United States)
(d) Short date: . . . . . . . 4/17/2006
(D) Long date:. . . . . . . . Monday, April 17, 2006
(t) Short time: . . . . . . . 2:38 PM
(T) Long time:. . . . . . . . 2:38:09 PM
(f) Full date/short time: . . Monday, April 17, 2006 2:38 PM
(F) Full date/long time:. . . Monday, April 17, 2006 2:38:09 PM
(g) General date/short time:. 4/17/2006 2:38 PM
(G) General date/long time (default):
. . . . . . . . . . . . . 4/17/2006 2:38:09 PM
(M) Month:. . . . . . . . . . April 17
(R) RFC1123:. . . . . . . . . Mon, 17 Apr 2006 21:38:09 GMT
(s) Sortable: . . . . . . . . 2006-04-17T14:38:09
(u) Universal sortable (invariant):
. . . . . . . . . . . . . 2006-04-17 21:38:09Z
(U) Universal full date/time: Monday, April 17, 2006 9:38:09 PM
(Y) Year: . . . . . . . . . . April, 2006
(o) Roundtrip (local):. . . . 2006-04-17T14:38:09.9417500-07:00
(o) Roundtrip (UTC):. . . . . 2006-04-17T21:38:09.9417500Z
(o) Roundtrip (Unspecified):. 2000-03-20T13:02:03.0000000
Use ToString(String, IFormatProvider) and a specified culture.
Culture: German (Germany)
(d) Short date: . . . . . . . 17.04.2006
(D) Long date:. . . . . . . . Montag, 17. April 2006
(t) Short time: . . . . . . . 14:38
(T) Long time:. . . . . . . . 14:38:09
(f) Full date/short time: . . Montag, 17. April 2006 14:38
(F) Full date/long time:. . . Montag, 17. April 2006 14:38:09
(g) General date/short time:. 17.04.2006 14:38
(G) General date/long time (default):
. . . . . . . . . . . . . 17.04.2006 14:38:09
(M) Month:. . . . . . . . . . 17 April
(R) RFC1123:. . . . . . . . . Mon, 17 Apr 2006 21:38:09 GMT
(s) Sortable: . . . . . . . . 2006-04-17T14:38:09
(u) Universal sortable (invariant):
. . . . . . . . . . . . . 2006-04-17 21:38:09Z
(U) Universal full date/time: Montag, 17. April 2006 21:38:09
(Y) Year: . . . . . . . . . . April 2006
(o) Roundtrip (local):. . . . 2006-04-17T14:38:09.9417500-07:00
(o) Roundtrip (UTC):. . . . . 2006-04-17T21:38:09.9417500Z
(o) Roundtrip (Unspecified):. 2000-03-20T13:02:03.0000000
*/
Vedere anche
Concetti
Cenni preliminari sulla formattazione
Stringhe di formato di data e ora
Stringhe di formato data e ora personalizzate