Benutzer mit den meisten Antworten
Zeile aus Textdatei einlesen und als Datum umwandeln

Frage
-
Hallo,
ich habe in einer Textdatei in Zeile 20 ein Datum in Form von yyyy.MM.dd stehen. Bei Aufruf dieser Datei möchte ich diesen string in ein Datumsformat umwandeln. Wenn ich folgenden Code ausführe, kommt die Fehlermeldung, das kein gültiges DateTime erkannt wurde:
var readLines = File.ReadAllLines(path);
string Datum = readLines[20]; var a = DateTime.Parse(Datum);
oder
var a = DateTime.Parse(readLines[20]);
Wie kann ich denn nun den string in ein DateTime umwandeln?
Vielen Dank für eure Hilfe
- Bearbeitet noob81 Mittwoch, 6. Januar 2016 10:30
Antworten
-
- Bearbeitet Olaf HelperMVP Mittwoch, 6. Januar 2016 14:01
- Als Antwort markiert noob81 Mittwoch, 6. Januar 2016 14:10
Alle Antworten
-
-
Stimmt, da habe ich mich falsch ausgedrückt. In der Textdatei befindet sich das Datum in Zeile 21.
@Roland: Damit kann ich leider nicht viel mit anfangen, da ich die Abfrage in einer Funktion und darin mit einer if Abfrage habe. Diese Funktion kann ich somit nicht einfügen. Stelle ich die Befehlszeile ein paar Ebenen hörer gibt es eine Fehlermeldung, das der Parseteil einen Text haben möchte und keinen string
-
Das verstehe ich jetzt gerade nicht ganz.
Wie unterscheidet sich
var a = DateTime.Parse(readLines[20]);
von
var a = DateTime.ParseExact(readLines[20]), "yyyy.mm.dd", null)
bei der Nutzung?
Kennst Du den Formatstring zu dem Zeitpunkt noch nicht?
Kannst Du mal den entsprechenden Codeteil hier einstellen?
- Bearbeitet Roland Franz Mittwoch, 6. Januar 2016 11:15 Tippfehler beseitigt
-
Das ist ja das Problem. Es gibt keinen Unterschied. Hier ist mal ein Auszug des Codes:
this.tbDatum.Text = DateTime.Today.ToString("yyyy.MM.dd"); string Datum = tbDatum.Text; var aktuellDatum = DateTime.Parse(tbDatum.Text); if (File.Exists(path)) { var readLines = File.ReadAllLines(path); string Wartung = readLines[20]; if (Wartung != null) // Bis hierhin läuft alles { var aktuellWartung = DateTime.ParseExact(Wartung, "yyyy.MM.dd", null); if (aktuellDatum < aktuellWartung) { NewButton.BackColor = Color.Aqua; } } }
-
Da gibt es eine Menge Möglichkeiten, auf die ich hier nicht alle detailiert eingehen kann.
Die einfachste, bei der Unterbrechung (also wenn der Fehler auftritt) mit dem Cursor über die Variable fahren.
Die zweite Möglichkeit ist das einsetzen einer Debug-Zeile:
if (File.Exists(path)) { var readLines = File.ReadAllLines(path); string Wartung = readLines[20]; Debug.Print(Wartung); if (Wartung != null) // Bis hierhin läuft alles { var aktuellWartung = DateTime.ParseExact(Wartung, "yyyy.MM.dd", null); if (aktuellDatum < aktuellWartung) { NewButton.BackColor = Color.Aqua; } } }
Du kannst auch den Inhalt der Stringvariable einfach mal per MessageBox ausgeben, oder in ein Textfeld auf Deinem Formular.
...
Das sollte jetzt erst mal reichen.
- Bearbeitet Roland Franz Mittwoch, 6. Januar 2016 13:43
-
- Bearbeitet Olaf HelperMVP Mittwoch, 6. Januar 2016 14:01
- Als Antwort markiert noob81 Mittwoch, 6. Januar 2016 14:10