Was ist mit dieser TimeSpan.ParseExact-Zeile falsch?

8

Ich erhalte eine FormatError-Ausnahme von diesem Aufruf von TimeSpan.ParseExact, aber die MSDN-Dokumentation dass ich lese sagt, dass dieses Format korrekt sein sollte:

%Vor%

Kann mir bitte jemand sagen, warum das nicht funktioniert? Ich mache fast genau das gleiche mit einem Aufruf von DateTime.ParseExact und das funktioniert gut:

%Vor%     
Steve Rukuts 06.04.2011, 15:46
quelle

5 Antworten

15

TimeSpan verwendet nicht dieselben Formatierungsregeln wie DateTime.

Sie wollen hhmmss, nicht HHmmss.

Sie suchen auf der falschen Seite in MSDN - Sie möchten etwas wie:

Ссылка

    
Will Dean 06.04.2011, 15:48
quelle
5

Mit Bezug auf diese genauere Dokumentation: Ссылка

Sie müssen hh für Stunden verwenden, nicht HH .

    
Kieren Johnstone 06.04.2011 15:51
quelle
3

Wie in benutzerdefinierten TimeSpan-Format-Strings angegeben, werden die Stunden durch "h" und nicht durch "h" dargestellt. H ".

Das funktioniert also gut:

%Vor%

Die Dokumentation, die Sie verlinkt haben, ist für benutzerdefinierte Formatfolgen Datum und Uhrzeit , die nicht identisch sind. Sie sind für DateTime.ParseExact etc; Die Dokumentation, mit der ich verlinkt bin, ist für TimeSpan.ParseExact etc.

    
Jon Skeet 06.04.2011 15:50
quelle
2

Analysieren Sie die Zeichenfolge zu einem DateTime-Wert, und subtrahieren Sie den Datumswert, um die Zeit als TimeSpan zu erhalten:

%Vor%     
Amit Ranjan 06.04.2011 15:51
quelle
2

Sie versuchen, die Zeichenfolgen DateTime zu verwenden, um TimeSpan zu analysieren. TimeSpan hat eigene (etwas andere) Formatzeichenfolgen. Eine vollständige Liste finden Sie in MSDN: Benutzerdefinierte TimeSpan Format-Zeichenfolgen

Ändern Sie insbesondere HH in hh . Dies gibt Ihnen:

%Vor%     
Greg 06.04.2011 15:49
quelle