【发布时间】:2013-07-22 11:00:18
【问题描述】:
我需要解析一个时间戳值,它既可以作为 NTP 时间给出,也可以作为带有单位字符的短时间字符串给出。
例子:
time = 604800 (can cast to long, easy!)
或
time = 7d
.NET 中是否有针对此类情况的内置日期时间解析功能?还是我必须寻找任何不是数字的字符(可能使用正则表达式?)。
预计会出现以下字符:
d - days
h - hours
m - minutes
s - seconds
【问题讨论】:
-
没有内置的 .NET 方法来实现这种非常具体的格式。你可以用正则表达式来做到这一点。
-
@CédricBignon 那么,怎么样?我对正则表达式模式不是很熟悉,我“快速”编写解析模式看起来像是火箭科学。
-
首先你必须非常清楚你期望格式化的字符串是怎样的。
"7d 5s 8h"有效吗?"7 d 5 h"有效吗?"7d8h"有效吗? -
@CédricBignon 根据我的规范,只有 1 个时间实体有效。如果 NTP 值为
604801(基本上是7d 1s),则数据应该由下一个可能的更小的单位表示,因此在这种情况下唯一可能的值是604801s。格式仅在上面的示例中有效。 (<int><unit>没有空格等)。非常感谢您的宝贵时间。 -
在这种情况下,使用正则表达式可能会很多。
标签: c# .net parsing datetime time