我正在尝试将字符串转换为c#中的Datetime。 String datestring = 2013/03/18 10:54:07.679
我试过DateTime dt=DateTime.ParseExact(datestring, "yyyy/MM/dd HH:mm:ss.fff",null);
结果是{3/18/2013 10:54:07 AM}
我试过DateTime.TryParseExact(datestring,"yyyy/MM/dd HH:mm:ss.fff",CultureInfo.InvariantCulture,DateTimeStyles.None,out dttt);
结果是{3/18/2013 10:54:07 AM}
在上述两种情况下,它都忽略了毫秒(679)。
如何通过保持毫秒来正确地将其转换为日期时间?
答案 0 :(得分:11)
它并没有忽略你只是通过调试器检查,调试器使用AM或PM显示它,它显示毫秒显示毫秒。
试试这个:
DateTime dt=DateTime.ParseExact(datestring, "yyyy/MM/dd HH:mm:ss.fff",null);
Console.WriteLine(dt.ToString("yyyy/MM/dd HH:mm:ss.fff"));
您的评论But I need the answer in Datetime instead of string
中的编辑
您已经包含MilliSeconds
日期时间,因为调试器没有显示
(如Ant P
注释中所述)调试器调用ToString()
方法的无参数重载,该方法显示没有MilliSeconds的DateTime
。
答案 1 :(得分:0)
您需要注意,当时间包含两位数的毫秒时,无法解析精确的字符串fff。
例如在我的情况下,我有2019-08-19 13:35:06.27无法解析 但是2019-08-20 13:35:04.274将正确解析。 我想它也会发生1位数和0位数的毫秒。
仅当毫秒数具有尾随零时,它将起作用。例如.270
示例:
string x = "2019-08-20 13:35:04.27";
DateTime d;
bool result = DateTime.TryParseExact(x, "yyyy-MM-dd HH:mm:ss.fff",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None, out d);
Console.WriteLine(result);