2017-10-02 3 views
1

Einfach durch die Microsot Standard Date and Time Format Strings suchen universelle Datumsformat-Spezifizierer (JJJJ-MM-dd) zu finden. Ich kann sehen, es gibt eine für UniversalSortableDateTimePattern, die "u" ist. und das Datum Ausgänge:Universal Sortierbarer Format-Spezifizierer für nur Datum

yyyy'-'MM'-'dd HH':'mm':'ss'Z' 

Ich bin nur daran interessiert, das Datum Teil und ich weiß nicht wirklich will, halte die Eingabe eines benutzerdefiniertes Formats wie

date.ToString("yyyy-MM-dd"). 

Gibt es einen Formatbezeichner Brief für die universellen Datum Format? Oder die einzige Option ist ein benutzerdefiniertes Datumsformat?

So etwas wie DateTimeFormatInfo.UniversalSortableDatePattern

+0

Da es nicht in der Liste ist die einzige Möglichkeit, dies zu tun, ohne ein benutzerdefiniertes Format verwendet, wird mit '„d“' und ein spezifischen Kultur (zB 'jp-JP' =>' yyyy/MM/dd') –

+0

Am besten könntest du 'var dt = DateTime.Now.ToString (" s ")' aber das gibt dir T und dann die Zeit danach Sie müssen entweder ein benutzerdefiniertes Format verwenden, wie Sie es tun, und dieses in einer Konfigurationsdatei angeben, wenn es über mehrere Stellen geht oder wenn es nur in der einen Klassendatei das Format als schreibgeschützt oder const-Wert –

+0

'date angibt .ToString ("u"). Split ('') [0] '? –

Antwort

0

Ich denke nicht. Dieses Format ist auf datetimeformatinfo.cs in mscorlib fest codiert.

internal const String universalSortableDateTimePattern = "yyyy'-'MM'-'dd HH':'mm':'ss'Z'"; 

http://referencesource.microsoft.com/#mscorlib/system/globalization/datetimeformatinfo.cs,115

Sieht aus wie Sie auf Ihrem Fall nicht zu viel Wahl.

Verwenden Sie einfach;

date.ToString("yyyy'-'MM'-'dd") 

oder Sie können dieses Format irgendwo anders wie Konfigurationsdatei lesen usw.

+0

Es ist schade, dass sie nicht für 'JJJJ-MM-TT' hart-codiert haben, die meistens verwendet wird, glaube ich. – akd

+0

@akd Sorry aber sieht aus als hättest du nicht zu viele Optionen hier. –