c# - DateTime.ParseExact 具有可变的秒数

标签 c# datetime parsing

我必须解析以小时、分钟、秒和秒的小数形式给出的时间。比如

"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/

相关文章:

java - 无法构造 `java.time.ZonedDateTime` 的实例(没有创建者,如默认构造,存在)

python - 删除包含特定类型的数据帧行

java - Antlr4 : Evaluate math functions f(x)

python - 有没有办法用 lxml 解析 html,但用 minidom 操作它?

c# - Entity Framework 6 无法检索元数据

c# - 带有模板的 MVC 3 html 助手

c# - 泛型函数重载

c# - 从列表中选择未出现在第二个列表中的内容

java - 如何通过循环小时来返回时间对象列表

javascript - jquery.zrssfeed.min.js 的回调