我必须解析以小时、分钟、秒和秒的小数形式给出的时间。比如
"15:42:58.1"
"15:42:58.21"
"15:42:58.417"
使用以下代码:
DateTime.ParseExact("15:42:58.1", "HH:mm:ss.0.f", CultureInfo.InvariantCulture);
这只适用于一位小数。任何其他小数位都会导致异常。
问题:
- 秒的小数位数是否有通用的可能性?
最佳答案
如果这是一天中的某个时间或类似时间,您可以使用 TimeSpan
。参见 Custom TimeSpan format strings . Jeroen Mostert 对您问题的评论中的技巧仍然适用:使用大写 F
。
您必须使用 TimeSpan
格式字符串转义分隔符。因此,使用以下之一:
var ts1 = TimeSpan.ParseExact("15:42:58.1", @"hh\:mm\:ss\.FFFFFFF", CultureInfo.InvariantCulture);
var ts2 = TimeSpan.ParseExact("15:42:58.1", "hh':'mm':'ss'.'FFFFFFF", CultureInfo.InvariantCulture);
这似乎对尾随零也有效,例如"15:42:58.10"
解析正常。
关于c# - DateTime.ParseExact 具有可变的秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58135499/