it-swarm.com.de

C #: Wie würde ich die aktuelle Zeit in eine Zeichenfolge einbauen?

Wie kann ich die aktuelle h/m/s AM-Zeit in eine Zeichenfolge einfügen? Und vielleicht auch das Datum in numerischer Form (02.01.09) in ein anderes?

46
Mitt Rodenbaugh

Ich möchte in diesen Antworten nur auf etwas hinweisen. In einer Zeichenfolge im Datums-/Zeitformat wird '/' durch unabhängig vom Datumstrennzeichen des Benutzers und ':' durch unabhängig vom Zeittrennzeichen des Benutzers. Das heißt, wenn ich mein Datumstrennzeichen als '.' Definiert habe. (im Applet der Systemsteuerung für Regions- und Sprachoptionen "intl.cpl") und mein Zeittrennzeichen "?" (Tu einfach so, als wäre ich verrückt)

DateTime.Now.ToString("MM/dd/yyyy h:mm tt")

würden zurückkehren

01.05.2009 18-13 Uhr

In den meisten Fällen ist dies das, was Sie möchten, weil Sie die Einstellungen des Benutzers respektieren möchten. Wenn Sie jedoch benötigen , dass das Format etwas Bestimmtes ist (z. B. wenn es von jemand anderem auf der ganzen Linie analysiert wird), dann müssen Sie um diesen Sonderzeichen zu entkommen:

DateTime.Now.ToString("MM\\/dd\\/yyyy h\\:mm tt")

oder

DateTime.Now.ToString(@"MM\/dd\/yyyy h\:mm tt")

was jetzt zurückkehren würde

01.05.2009 18:01 Uhr

[~ # ~] edit [~ # ~] :

Wenn Sie jedoch wirklich die Einstellungen des Benutzers berücksichtigen möchten, sollten Sie eines der Standard-Datums- und -Uhrzeiten verwenden Formatieren Sie Zeichenfolgen, damit Sie nicht nur die vom Benutzer gewählten Trennzeichen berücksichtigen, sondern auch das allgemeine Format von Datum und/oder Uhrzeit.

DateTime.Now.ToShortDateString()
DateTime.Now.ToString("d")

Beide würden beispielsweise "1/5/2009" mit Standardoptionen für die USA oder "05/01/2009" mit Standardoptionen für Großbritannien zurückgeben.

DateTime.Now.ToLongDateString()
DateTime.Now.ToString("D")

Beide würden "Montag, 05. Januar 2009" in der US-Ländereinstellung oder "05. Januar 2009" in Großbritannien zurückgeben.

DateTime.Now.ToShortTimeString()
DateTime.Now.ToString("t");

"6:01 PM" in den USA, "18:01" in Großbritannien.

DateTime.Now.ToLongTimeString()
DateTime.Now.ToString("T");

"6:01:04 PM" in den USA, "18:01:04" in Großbritannien.

DateTime.Now.ToString()
DateTime.Now.ToString("G");

"05.01.2009 18:01:04 Uhr" in den USA, "01.05.2009 18:01:04 Uhr" in Großbritannien.

Viele andere Optionen stehen zur Verfügung. In der Dokumentation finden Sie Standard-Datums- und Uhrzeitformat-Zeichenfolgen und benutzerdefinierte Datums- und Uhrzeitformat-Zeichenfolgen .

75
P Daddy

Sie können auch Formatzeichenfolgen verwenden.

string time = DateTime.Now.ToString("hh:mm:ss"); // includes leading zeros
string date = DateTime.Now.ToString("dd/MM/yy"); // includes leading zeros

oder einige Verknüpfungen, wenn das Format für Sie funktioniert

string time = DateTime.Now.ToShortTimeString();
string date = DateTime.Now.ToShortDateString();

Entweder sollte funktionieren.

20
palehorse
DateTime.Now.ToString("h:mm tt")
DateTime.Now.ToString("MM/dd/yyyy")

Hier sind einige gebräuchliche Formatstrings

10
Tom Ritter

Methode zum Abrufen von Systemdatum und -zeit in einer einzelnen Zeichenfolge

public static string GetTimeDate()
{
    string DateTime = System.DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss");   
    return DateTime;
} 

sample OUTPUT :-16-03-2015 07:45:15
8
Kartiikeya

Seien Sie vorsichtig, wenn Sie auf DateTime.Now zweimal zugreifen, da es möglich ist, dass sich die Anrufe über Mitternacht erstrecken und Sie in seltenen Fällen verrückte Ergebnisse erzielen und sich am Kopf kratzen müssen.

Um sicherzugehen, sollten Sie DateTime.Now zuerst einer lokalen Variablen zuweisen, wenn Sie sie mehrmals verwenden möchten:

var now = DateTime.Now;
var time = now.ToString("hh:mm:ss tt");
var date = now.ToString("MM/dd/yy");

Beachten Sie, dass die Kleinbuchstaben "hh" auch nachmittags von 00-11 Uhr angezeigt werden und "tt" AM/PM anzeigt, wie in der angeforderten Frage angegeben. Wenn Sie 24-Stunden-Uhr 00-23 möchten, verwenden Sie "HH".

4
Mike Scott
string t = DateTime.Now.ToString("h/m/s tt");
string t2 = DateTime.Now.ToString("hh:mm:ss tt");
string d = DateTime.Now.ToString("MM/dd/yy");

http://msdn.Microsoft.com/en-us/library/8kb3ddd4.aspx

2
Joel Coehoorn