Domanda

Qualcuno, per favore, correggimi se sbaglio, ma sto analizzando le date aaaa/MM/gg (o altri formati specifici) in C# Dovrebbe essere facile come

DateTime.ParseExact(theDate, "yyyy/MM/dd");

ma no, C# ti obbliga a creare un IFormatProvider.

Esiste un modo intuitivo per app.config per impostarlo in modo da non doverlo fare ogni volta?

DateTime.ParseExact(theDate, "yyyy/MM/dd", new CultureInfo("en-CA", true));
È stato utile?

Soluzione

L'argomento IFormatProvider può essere null.

Altri suggerimenti

ParseExact ha bisogno di una cultura:considera "aaaa MMM gg".MMM sarà un nome di mese localizzato che utilizza la lingua corrente.

Utilizza la cultura dell'applicazione corrente:

DateTime.ParseExact("2008/12/05", "yyyy/MM/dd", System.Globalization.CultureInfo.CurrentCulture);

Puoi impostare la cultura dell'applicazione in app.config utilizzando il tag Globalization.Penso.

Crea un metodo di estensione:

public static DateTime ParseExactDateTime(this string dateString, string formatString) {
    return DateTime.ParseExact(dateString, formatString, new CultureInfo("en-CA", true));
}

Richiede il provider del formato per determinare i simboli e le stringhe di data e ora particolari (come i nomi dei giorni della settimana in una lingua particolare).È possibile utilizzare un valore null, nel qual caso viene utilizzato l'oggetto CultureInfo che corrisponde alla lingua corrente.

Se non vuoi doverlo specificare ogni volta, crea un metodo di estensione che passi null o CultureInfo("en-CA", true) come provider del formato.

Puoi anche creare semplicemente IFormatProvider una volta e memorizzarlo per un uso successivo.

Potresti anche usare la classe Convert

Convert.ToDateTime("2008/11/25");

//Converti la data in un formato compatibile con MySql

DateTime DateValue = Convert.ToDateTime(datetimepicker.text);

string datevalue = DateValue.ToString("aaaa-MM-gg");

Cosa c'è di sbagliato nell'usare Globalization.CultureInfo.InvariantCulture ?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top