Gast NapNap Geschrieben 23. Februar 2020 Teilen Geschrieben 23. Februar 2020 DateTime.TryParseExact(txtGeburtstag.Text,"mm/dd/yyyy",CultureInfo.CurrentCulture, DateTimeStyles.None, out geburtsdatum); Eingabe= 28.05.1991 liefert als Ergebnis {28.01.1991 00:05:00} -> Warum befindet sich die Time, beim Format dd/mm/yyyy mit im Ergebnis und wie kann ich meinen String in Format Tag.Monat.Jahr parsen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 medmexx1 Geschrieben 23. Februar 2020 Teilen Geschrieben 23. Februar 2020 Ich kann es leider nicht testen, aber hast du mal probiert das DateTime Modul folgende Konstante hinzuzufügen? DateTime.dateTryParseExact(txtGeburtstag.Text,"mm/dd/yyyy",CultureInfo.CurrentCulture, DateTimeStyles.None, out geburtsdatum); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Gast NapNap Geschrieben 23. Februar 2020 Teilen Geschrieben 23. Februar 2020 vor 3 Minuten schrieb medmexx1: Ich kann es leider nicht testen, aber hast du mal probiert das DateTime Modul folgende Konstante hinzuzufügen? DateTime.dateTryParseExact(txtGeburtstag.Text,"mm/dd/yyyy",CultureInfo.CurrentCulture, DateTimeStyles.None, out geburtsdatum); .dateTryParseExact gibt es nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Whiz-zarD Geschrieben 23. Februar 2020 Teilen Geschrieben 23. Februar 2020 (bearbeitet) mm steht für Minuten. Du brauchst MM. Bearbeitet 23. Februar 2020 von Whiz-zarD Panawr reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Gast NapNap Geschrieben 24. Februar 2020 Teilen Geschrieben 24. Februar 2020 "dd/MM/yyyy" zeigt mir auch die Sekunden an. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Whiz-zarD Geschrieben 24. Februar 2020 Teilen Geschrieben 24. Februar 2020 (bearbeitet) Nein, tut es nicht DateTime.TryParseExact("31/12/2020", "dd/MM/yyyy", CultureInfo.CurrentCulture, DateTimeStyles.None, out DateTime geburtsdatum); Console.WriteLine(geburtsdatum); Ausgabe: 31.12.2020 00:00:00 Bearbeitet 24. Februar 2020 von Whiz-zarD Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Gast NapNap Geschrieben 24. Februar 2020 Teilen Geschrieben 24. Februar 2020 vor 21 Minuten schrieb Whiz-zarD: Nein, tut es nicht DateTime.TryParseExact("31/12/2020", "dd/MM/yyyy", CultureInfo.CurrentCulture, DateTimeStyles.None, out DateTime geburtsdatum); Console.WriteLine(geburtsdatum); Ausgabe: 31.12.2020 00:00:00 ich wollte in meiner DateTime variablen nur "31.12.2020" stehen haben, statt {"31.12.2020 00:00:00"} Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Whiz-zarD Geschrieben 24. Februar 2020 Teilen Geschrieben 24. Februar 2020 Kannst du englisch? Was meinst du, wieso die Klasse DateTime heißt? Und wenn du nur das Datum haben willst, dann formatiere die Ausgabe. Auch hier gilt: mm für Minuten und MM für Monat. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Gast NapNap Geschrieben 24. Februar 2020 Teilen Geschrieben 24. Februar 2020 vor 45 Minuten schrieb Whiz-zarD: Kannst du englisch? Was meinst du, wieso die Klasse DateTime heißt? Und wenn du nur das Datum haben willst, dann formatiere die Ausgabe. Auch hier gilt: mm für Minuten und MM für Monat. habe geburtsdatum.toString("dd/MM/yyyy") probiert. Hat nicht funktioniert. Wie formatiere ich die Ausgabe, um meinen gewünschten Wert zu erhalten? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Visar Geschrieben 25. Februar 2020 Teilen Geschrieben 25. Februar 2020 Du solltest dich vielleicht noch einmal mit den Grundlagen auseinandersetzen. .toString() sorgt nicht dafür, dass plötzlich Zeichen verschwinden. Zwei Vorschläge. 1) string formattedDate = geburtsdatum.ToString().Substring(0, 10); Console.WriteLine(formattedDate); // Output: 12/31/2020 2) int day = geburtsdatum.Day, month = geburtsdatum.Month, year = geburtsdatum.Year; string dateFormat = "{1}/{0}/{2}", formattedDate = string.Format(dateFormat, day, month, year); Console.WriteLine(formattedDate); // Output: 12/31/2020 Davon abgesehen würde ich für CultureInfo.CurrentCulture besser irgendetwas festlegen, statt mit CurrentCulture zu arbeiten. Falls noch Fragen offen sind: https://docs.microsoft.com/de-de/dotnet/csharp/ ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 KeeperOfCoffee Geschrieben 25. Februar 2020 Teilen Geschrieben 25. Februar 2020 (bearbeitet) Warum umständlich, wenn es einfach geht DateTime dt = DateTime.Now(); string formatedDt = $"{dt:dd.MM.yyyy}"; vor 9 Stunden schrieb Gast NapNap: ich wollte in meiner DateTime variablen nur "31.12.2020" stehen haben, statt {"31.12.2020 00:00:00"} Was du missverstehst ist ,dass DateTime.TryParseExtract dir aus einem String ein DateTime bastelt. Ein DateTime hat auch immer eine Zeitangabe. Wenn du etwas ausgeben willst bzw. irgendwo ein Datum formatiert anzeigen willst, dann nimmst du aber String Werte her. Bearbeitet 25. Februar 2020 von KeeperOfCoffee Panawr reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Gast NapNap Geschrieben 25. Februar 2020 Teilen Geschrieben 25. Februar 2020 vor 9 Stunden schrieb KeeperOfCoffee: Warum umständlich, wenn es einfach geht DateTime dt = DateTime.Now(); string formatedDt = $"{dt:dd.MM.yyyy}"; Was du missverstehst ist ,dass DateTime.TryParseExtract dir aus einem String ein DateTime bastelt. Ein DateTime hat auch immer eine Zeitangabe. Wenn du etwas ausgeben willst bzw. irgendwo ein Datum formatiert anzeigen willst, dann nimmst du aber String Werte her. finde die Formatierung gut -> string formatedDt = $"{geburtsdatum:dd.MM.yyyy}"; kannst du mir erklären wie die funktioniert? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 KeeperOfCoffee Geschrieben 25. Februar 2020 Teilen Geschrieben 25. Februar 2020 Es handelt sich hierbei um eine Zeichenfolgeninterpolation (https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/tokens/interpolated) Alles ab dem ":" ist eine Formatzeichenfolge (siehe hier: https://docs.microsoft.com/de-de/dotnet/standard/base-types/composite-formatting#format-string-component). Da es sich um ein DateTime handelt, werden die Standard Formatzeichenfolgen für diesen Typ verwendet bzw. in diesem Fall ist es eine benutzerdefinierte Formatzeichenfolge: https://docs.microsoft.com/de-de/dotnet/standard/base-types/custom-date-and-time-format-strings "dd": https://docs.microsoft.com/de-de/dotnet/standard/base-types/custom-date-and-time-format-strings#ddSpecifier "MM": https://docs.microsoft.com/de-de/dotnet/standard/base-types/custom-date-and-time-format-strings#MM_Specifier "yyyy": https://docs.microsoft.com/de-de/dotnet/standard/base-types/custom-date-and-time-format-strings#yyyySpecifier TL;DR: dd = Tag zwischen 01-31, MM = Monat von 01-12, yyyy = Jahr ACHTUNG: Die von mir vorgeschlagene Schreibweise ist erst ab C# 6.0 verfügbar und wird in sehr alten Legacy Anwendungen nicht funktionieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 RipperFox Geschrieben 25. Februar 2020 Teilen Geschrieben 25. Februar 2020 (bearbeitet) DateTime.ToShortDateString() gäbe es auch noch seit .Net 1.1: https://docs.microsoft.com/de-de/dotnet/api/system.datetime.toshortdatestring Das entspräche .ToString("d"), von der Culture unabhängig könnte man auch .ToString("dd.MM.yyy") schreiben. Bearbeitet 25. Februar 2020 von RipperFox Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
0 Gast NapNap Geschrieben 25. Februar 2020 Teilen Geschrieben 25. Februar 2020 vor 14 Stunden schrieb KeeperOfCoffee: Warum umständlich, wenn es einfach geht DateTime dt = DateTime.Now(); string formatedDt = $"{dt:dd.MM.yyyy}"; Was du missverstehst ist ,dass DateTime.TryParseExtract dir aus einem String ein DateTime bastelt. Ein DateTime hat auch immer eine Zeitangabe. Wenn du etwas ausgeben willst bzw. irgendwo ein Datum formatiert anzeigen willst, dann nimmst du aber String Werte her. Danke für eure Tipps, und vorallem @KeeperOfCoffee für die ausführliche Erklärung. Hab mich für var datum = Convert.ToDateTime(txtGeburtstag.Text).ToShortDateString(); entschieden Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Frage
Gast NapNap
Eingabe= 28.05.1991
liefert als Ergebnis {28.01.1991 00:05:00}
-> Warum befindet sich die Time, beim Format dd/mm/yyyy mit im Ergebnis und wie kann ich meinen String in Format Tag.Monat.Jahr parsen.
Link zu diesem Kommentar
Auf anderen Seiten teilen
14 Antworten auf diese Frage
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.