繁体   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