Wie kann ich ein Datum als dd/mm/yyyy
oder mm/dd/yy
formatieren?Format Datum in C#
Wie in VB format("dd/mm/yy",now)
Wie kann ich dies in C#?
Wie kann ich ein Datum als dd/mm/yyyy
oder mm/dd/yy
formatieren?Format Datum in C#
Wie in VB format("dd/mm/yy",now)
Wie kann ich dies in C#?
Es ist fast das gleiche, verwenden Sie einfach die DateTime.ToString()
Methode, zB:
DateTime.Now.ToString("dd/MM/yy");
Oder:
DateTime dt = GetDate(); // GetDate() returns some date
dt.ToString("dd/MM/yy");
Außerdem könnten Sie mit einem der vordefinierten Datums-/Uhrzeitformate berücksichtigen wollen , zB:
DateTime.Now.ToString("g");
// returns "02/01/2009 9:07 PM" for en-US
// or "01.02.2009 21:07" for de-CH
Diese stellen sicher, dass das Format korrekt ist, unabhängig von der aktuelle Gebietsschemaeinstellungen.
Überprüfen Sie die folgenden MSDN-Seiten für weitere Informationen
Einige weitere relevante Informationen:
Wenn Sie ein Datum in einer bestimmten locale/Kultur angezeigt werden sollen, dann gibt es eine Überlastung der ToString()
Methode, die ein IFormatProvider
nimmt:
DateTime dt = GetDate();
dt.ToString("g", new CultureInfo("en-US")); // returns "5/26/2009 10:39 PM"
dt.ToString("g", new CultureInfo("de-CH")); // returns "26.05.2009 22:39"
oder alternativ Sie die CultureInfo
des aktuellen Threads festlegen vor ein Datum zu Formatierung:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
dt.ToString("g"); // returns "5/26/2009 10:39 PM"
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-CH");
dt.ToString("g"); // returns "26.05.2009 22:39"
string.Format("{0:dd/MM/yyyy}", DateTime.Now)
Look "Formatstrings" auf MSDN, um alle Formatierungsoptionen zu sehen.
Verwenden yy
, yyyy
, M
, MM
, MMM
, MMMM
, d
, dd
, ddd
, dddd
für das Datum Komponente
Verwendung h
, hh
, H
, HH
, m
, mm
, s
, ss
für die Uhrzeitkomponente
Hier ist der MSDN Link. Könnte anderen helfen. https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx – Sai
Versuchen Sie dies:
String.Format("{0:MM/dd/yyyy}", DateTime.Now); // 01/31/2009
String.Format("{0:dd/MM/yyyy}", DateTime.Now); // 31/01/2009
String.Format("{dd/MM/yyyy}", DateTime.Now); // 31/01/2009
In Sie können auch
DateTime aDate = new DateTime();
string s = aDate.ToShortDateString();
für eine kurze Notation
oder
DateTime aDate = new DateTime();
string s = aDate.ToLongDateString();
für eine lange Schreibweise wie "Sunday, Feb. 1, 2009" schreiben.
Oder werfen Sie einen Blick auf MSDN für die Möglichkeiten von .ToString ("???");
noch besser, verwenden Sie einfach
DateTime.Now.ToString()
oder
DateTime.Now.ToString(CultureInfo.CurrentCulture)
das Format zu verwenden, der Benutzer bevorzugt.
Ich stieß auf das gleiche Problem. Was ich tun musste, war einen Verweis an der Spitze der Klasse hinzufügen und ändern Sie die CultureInfo des Thread, der gerade ausgeführt wird.
using System.Threading;
string cultureName = "fr-CA";
Thread.CurrentThread.CurrentCulture = new CultureInfo(cultureName);
DateTime theDate = new DateTime(2015, 11, 06);
theDate.ToString("g");
Console.WriteLine(theDate);
Alles, was Sie tun müssen, ist die Kultur Namen zu ändern, zum Beispiel: "en-US" = United States "fr-FR" = Französisch-sprachigen Frankreich "fr-CA" = French- sprechen Kanada etc ...
ich denke, das einfach ist, wie Sie zu und von jedem beliebigen Format ohne Verwirrung
für MonatDateTime.ParseExact(txt.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy/MM/dd"));
Sollte Großbuchstaben mM sein umwandeln kann, mm bedeutet Minuten ... –
I ermutigen Sie folgen Martins Rat und gehen mit den vordefinierten Codes, die kulturbewusst sind. Vielleicht brauchen Sie es jetzt nicht, aber in Zukunft könnte es die Dinge erleichtern. –
+1 für die vordefinierten Formate –