无法将字符串值转换为日期时间,包括毫秒

问题描述:

我有一个字符串值,我需要转换为DateTime无法将字符串值转换为日期时间,包括毫秒

的currentdate =“29-APR-17 03.42.06.410000 PM”

我想下面的语句,但它抛出错误:

DateTime originalDate = DateTime.Parse(currentDate); 
DateTime originalDate = Convert.ToDateTime(currentDate); 

我甚至跟着这个链接“https://msdn.microsoft.com/en-us/library/bb882581(v=vs.110).aspx” ,但也没有帮助

此外,*中提供的信息没有帮助,因为我总是面临错误字符串未被识别为有效的DateTime。

+0

DateTime.ParseExact是你的方式在这里 – Saurabh

DateTime.ParseExact要解决这样的格式:

DateTime originalDate = DateTime.ParseExact(currentDate, "dd-MMM-yy hh.mm.ss.ffffff tt", CultureInfo.InvariantCulture, DateTimeStyles.None); 

,或者如果时间部分被分离用冒号:使用Console.WriteLine(originalDate.ToString("dd/MM/yyyy hh:mm:ss.ffffff tt"))

DateTime.ParseExact(currentDateWithColons, "dd-MMM-yy hh:mm:ss.ffffff tt", CultureInfo.InvariantCulture, DateTimeStyles.None); 

两个点,并产生相同的结果冒号:

29/04/2017 03:42:06.410000 PM 

工作实施例:.NET Fiddle Demo

尝试下面的代码

string currentDate="29-APR-17 03:42:06.410000 PM" 
DateTime originalDate = DateTime.Parse(currentDate); 
originalDate = Convert.ToDateTime(currentDate); 
Console.WriteLine(originalDate.ToString("dd-MM-yyyy-fff")); 

你正在使用格式错误的使用方法:代替。及时。

改变 “29-APR-17 03.42.06 0.410000 PM” 到 “29-APR-17 3点42分06秒 0.410000 PM”

+0

它没有区别。它仍然不显示毫秒值。这是我的要求。 – Yash

+0

@Yash Console.WriteLine(originalDate.ToString(“dd-MM-yyyy-fff”)); –

+1

如果要显示毫秒值,请使用ToString()方法和自定义日期时间格式。为我工作得很好 –

string currentDate = "29-APR-17 03:42:06.410000 PM"; 
var date = DateTime.ParseExact(currentDate, "dd-MMM-yy hh:mm:ss.ffffff tt", CultureInfo.InvariantCulture); 

enter image description here