[英]DateTime.TryParseExact single second
我有許多不同格式的比賽時間結果(或多或少的小時,分鍾,秒和毫秒的任意組合):
我用有效格式列表解析它們,到目前為止,所有格式都可以使用,除了一種格式:一秒格式,例如“ 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.