Domanda

Per qualche motivo, il codice ASP.NET sul mio server ora sta restituendo un formato di gg / MM / aaaa invece di MM / gg / aaaa quando uso < strong> DateTime.ToString (" g ").

Anziché sostituire tutte le " g " stringhe di formato con una stringa di formato concreto o un argomento CultureInfo, esiste un modo in cui posso semplicemente ignorare, attraverso l'applicazione, la "data breve" predefinita predefinita Formato?

La mia preferenza è in realtà " aaaa-MM-gg " come formato predefinito, ma posso convivere con il MM / gg / aaaa incentrato sugli Stati Uniti, poiché tutti gli utenti sono negli Stati Uniti.

Chiarimento: non voglio cambiare l'intera cultura predefinita, che potrebbe influire su cose come la valuta e l'uso di decimali / virgole nella formattazione dei numeri.

Voglio solo sostituire qualsiasi chiamata ToString (" g ") per utilizzare il formato data ISO / IEC 8824 (" yyyy-MM-dd ").

Potrei cercare e sostituire il mio codice per forzare un CultureInfo in ogni chiamata ToString (), ma ciò non mi sembra la soluzione più gestibile.

La mia attuale soluzione è che ho definito un metodo statico per la formattazione di una data e lo chiamo invece di ToString () su tutta la mia base di codice. Ma ancora una volta, se dimentico di farlo da qualche parte nel codice, avrò di nuovo un appuntamento sciocco.

È stato utile?

Soluzione 2

L'impostazione della cultura non era un'opzione, né dipendeva dalle impostazioni internazionali del server.

Ho finito per scrivere una funzione di utilità per la formattazione delle date:

Public Shared Function FormatShortDate(ByVal d As Date) As String
    If d=#1/1/0001# Then Return ""
    If d=#1/1/1900# Then Return ""
    'ISO/IEC 8824 date format
    Return d.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)
End Function

Lo chiamo ovunque sia necessario inviare una data all'utente. Gestisce anche la visualizzazione delle date predefinite (" magic ").

Ho scritto alcune funzioni simili per e FormatShortDateTime e FormatLongDateTime.

Altri suggerimenti

È possibile impostare la cultura predefinita a web.config (livello applicazione), direttiva Pagina o direttiva controllo.

Ho diverse app in cui le pagine master sono impostate per culture diverse e le pagine e i controlli ereditano da lì.

Puoi modificare il formato della data breve modificando l'impostazione nelle impostazioni internazionali nel pannello di controllo sul tuo server.

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