我正在尝试找出以下给定日期时间文字的正确字符串格式:
18-JUN-13 12.17.36.000000000
使用MSDN,我设法编写了以下格式:
"d'-'MMM'-'y'T'h'.'m'.'s'.'fff"
但是当使用DateTime.ParseExact
时,解析失败并显示FormatException
:字符串未被识别为有效的DateTime 。
我的代码:
DateTime.ParseExact("18-JUN-13 12.17.36.000000000", "d'-'MMM'-'y'T'h'.'m'.'s'.'fff", null);
答案 0 :(得分:3)
您可以使用
dd-MMM-yy hh.mm.ss.fffffff
以基于英语的文化为例,例如InvariantCulture
。我现在在手机上,所以我无法尝试:(
AFAIK ,毫秒部分解析限制为7
,这就是为什么你不能解析你的字符串而不用操纵它。您可以像使用它一样使用它;
var dt = DateTime.ParseExact("18-JUN-13 12.17.36.0000000",
"dd-MMM-yy HH.mm.ss.fffffff",
CultureInfo.InvariantCulture);
看起来这就是为什么我们可能有The "fffffff"
custom format作为毫秒的顶级字符。来自docs;
虽然可以显示百万分之一秒 时间值的组成部分,该值可能无意义。该 日期和时间值的精确度取决于分辨率 系统时钟。在Windows NT 3.5(及更高版本)和Windows Vista上 在操作系统中,时钟的分辨率约为10-15 毫秒。
你问;
你将如何操纵字符串?
好,一种获取逗号最后一个索引的方法,然后将其子串到8个索引之后;
string s = "18-JUN-13 12.17.36.000000000";
var dateString = s.Substring(0, s.LastIndexOf(".") + 8);
答案 1 :(得分:0)
你有一堆单引号,格式不正确。试试这个
DateTime.ParseExact("18-JUN-13 12.17.36.000000000", "d-MMM-yTh.m.s.fff", null);