簡體   English   中英

DateTime.TryParseExact一秒

[英]DateTime.TryParseExact single second

我有許多不同格式的比賽時間結果(或多或少的小時,分​​鍾,秒和毫秒的任意組合):

  • 01:22:51.15
  • 22:15.12
  • 15.0
  • 12:21
  • ...

我用有效格式列表解析它們,到目前為止,所有格式都可以使用,除了一種格式:一秒格式,例如“ 5”。

由於某種原因,以下列表(包含“ s”作為第一項)不能幫助我將字符串“ 5”解析為DateTime,但是“ 25”可以正常工作。

var timeString = "5";
var timeFormats = new[] { "s", "s.f", "s.ff", "ss", "ss.f", "ss.ff", "m:ss", "m:ss.f", "m:ss.ff", "mm:ss", "mm:ss.f", "mm:ss.ff", "H:mm:ss", "H:mm:ss.f", "H:mm:ss.ff", "HH:mm:ss", "HH:mm:ss.f", "HH:mm:ss.ff" };
DateTime timeValue;
DateTime.TryParseExact(timeString, timeFormats, null, DateTimeStyles.None, out timeValue);

知道為什么這不起作用嗎? 還是有一種更干凈的方法來覆蓋所有這些時間格式,而無需添加另一個nuget包...? 干杯!

由於格式中只有一個字符,因此將其視為可排序標准格式 ,而不是具有秒數的自定義格式。

要更改此設置,請使用%字符作為自定義格式的前綴,例如"%s" 請參閱“使用單個自定義格式說明符”

另外,請注意,如果這些是比賽的實際經過時間,則TimeSpan是比DateTime更合適的數據結構。 切換時要小心,因為在兩個對象之間並非所有格式化令牌都相同。 特別是, TimeSpan使用h表示小時,而不使用H 請參閱自定義TimeSpan格式字符串

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM