2010-09-27 11 views
5

Ich habe DateTime Variable und ich möchte es in String "DD.MM.YYYY" konvertieren Bitte beachten Sie, dass die Werte durch "Punkt" Zeichen getrennt werden müssen.DateTime: Wie wird DD.MM.YYYY angezeigt?

Natürlich kann ich manuelle String-Komposition tun. Aber ich frage mich, ob ich DateTime.ToString() verwenden kann, um die erforderliche Konvertierung durchzuführen.

Antwort

13

Ja, Sie können:

string formatted = dt.ToString("dd'.'MM'.'yyyy"); 

Jetzt in diesem Fall der Anführungszeichen sind nicht wirklich erforderlich, da custom date/time format strings interpretieren nicht Punkt in irgendeiner besonderen Weise. Ich möchte es jedoch explizit machen - wenn sich ändern "." für ':' zum Beispiel, während es zitiert wird, wird es mit dem expliziten Zeichen bleiben, aber ohne Anführungszeichen wäre es "das kulturspezifische Zeittrennzeichen". Es war mir nicht ganz klar, ob "." würde als "der kulturspezifische Dezimaltrenner" interpretiert oder nicht, daher das Zitat. Sie fühlen sich natürlich überfordert, es ist Ihre Entscheidung.

Sie kann wollen auch die invariante Kultur geben, nur keine anderen Spuren von Zweifel zu entfernen: „“

string formatted = dt.ToString("dd'.'MM'.'yyyy", CultureInfo.InvariantCulture); 

(An diesem Punkt die Anführungszeichen um den Punkt weniger relevant werden, wie das Dezimaltrennzeichen in der invarianten Kultur sowieso)

+0

+1: Vielen Dank für die detaillierte Informationen über die Zitate, ihre Bedeutung in diesem Fall. –

8

Ja, können Sie DateTime.ToString wie folgt verwenden:

myDateVariable.ToString("dd.MM.yyyy"); 

Beachten Sie, dass Kapital MM hier verwenden, da mm Minuten statt Monaten auswertet.

2

Sie das Datum wie folgt formatiert werden können.

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

Wenn Formatt In Zahlen ändert sich der Zeitraum . je nach verwendetem CultureInfo, jedoch nicht beim Formatieren von Daten.

Wenn Sie Ihren Code gegen die Code-Analyse werden in der Regel die Überprüfung CA1304: Specify CultureInfo Sie die invariante Kultur verwenden müssen, auch wenn es nicht für dieses spezielle Format ist egal:

date.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture) 
3

Hier ist eine Alternative für Sie:

DateTime.Now.ToString("d", new CultureInfo("de-DE")) 

Deutsch verwenden . als Datum Trennzeichen.

+1

Willst du wirklich, dass jeder den Code liest, um das zu wissen? Ist es nicht einfacher, es zu buchstabieren? –

+0

Außerdem glaube ich, dass es möglich ist, jede Kultur mit eigenen Einstellungen zu überschreiben, also ist das Verhalten nicht garantiert. –

+0

beachten Sie das Wort ** Alternative **, danke für die Köpfe auf jeden Fall –

Verwandte Themen