2016-03-21 6 views
2

Ich möchte DateTime im Format HH:mm:ss drucken. Dieser ist aktuellen CodeWie wird das korrekte Format von DateTime eingestellt?

DateTime.Now.ToString("T"); 

diese geben mir Format: HH:mm:ss:fff

Ich fand, dass CultureInfo helfen kann, so dass ich verwandeln Code wie

DateTime.Now.ToString("T", new CultureInfo(fr-FR)) 

oder

DateTime.Now.ToString("T", new CultureInfo(hr-HR)) 

mit Keine Änderung. Kannst du mir helfen?

+2

Sie antworten einfach: 'ToString (" HH: mm: ss ");' – Ian

+2

@Ian In einem solchen Fall wäre es besser zu entkommen ':' Zeichen als '':'' wenn OPs aktuelle Kultur tut verwende '' 'nicht als' TimeSeparator'. –

+0

@ SonerGönül hast du recht ... nicht alle Kulturen verwenden ':' als 'TimeSeparator' – Ian

Antwort

7

The "T" Format Specifier verwendet LongTimePattern Eigenschaft der von Ihnen verwendeten Kultureinstellungen. Und diese Eigenschaft ändert sich über die Kultureinstellungen.

Zum Beispiel; es kann h:mm:ss tt, H:mm:ss oder hh:mm:ss tt etc ..

Aber InvariantCulture verwendet HH:mm:ss Format sein, das ist genau das, was Sie wollen. Übergeben Sie einfach InvariantCulture als zweiten Parameter in Ihrer ToString Methode und Sie werden gut.

DateTime.Now.ToString("T", CultureInfo.InvariantCulture); 

Oder Sie können custom date and time formatting wie verwenden;

DateTime.Now.ToString("HH:mm:ss", CultureInfo.InvariantCulture); 

By the way, fr-FR Kultur auch Verwendung HH:mm:ss als LongTimePattern aber hr-HR Kultur Verwendung H:mm:ss Format.

+0

Es scheint, dass ich ein anderes Problem habe. Ich möchte zwei DateTime - DateTime.Now und Variable vom Typ DateTime subtrahieren. Ich habe diesen Code (DateTime.Now - Variible) .ToString ("T"); und das gibt mir HH: mm: ss: fff. Wenn ich ToString ("HH: mm: ss"); Es wird ein Fehler ausgegeben - Die Eingabezeichenfolge hatte kein richtiges Format. .... DateTime.Now.ToString ("T", CultureInfo.InvariantCulture); funktioniert auch nicht. Kannst du helfen? –

+1

@ TomášČičman 'DateTime.Now - Varible' gibt eine [' TimeSpan'] (https://msdn.microsoft.com/en-us/library/system.timespan) zurück, keine 'DateTime'. Es hat eine etwas andere Formatierung als 'DateTime'. In diesem Fall können Sie beispielsweise '(DateTime.Now - Variible) .ToString (@" hh \: mm \: ss ", CultureInfo.InvariantCulture)' 'verwenden. Werfen Sie einen Blick auf [Standard] (https://msdn.microsoft.com/en-us/library/ee372286%28v=vs.110%29.aspx) und [custom] (https://msdn.microsoft.com) /en-us/library/ee372287%28v=vs.110%29.aspx) Zeitspannenformatierung. –

+0

Oh vielen Dank es funktioniert :) :) :) –