[英]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.