正在将异常DateTime字符串转换为DateTime对象
本文关键字:DateTime 转换 对象 字符串 异常 | 更新日期: 2023-09-27 18:27:02
我正在处理一个日志文件,它给了我一个看起来像这样的日期字符串:
09/Feb/2012:00:38:48
我一直在网上看不同的关于转换日期的页面,比如MSDN网站,但没有一个显示的日期像这个。
我需要手动重新格式化字符串以使其看起来类似于:吗
2012-02-09T00:38:48.0000000
或者有没有一种方法可以让它真正转化?
您可以使用DateTime.TryParseExact将字符串从指定的任何格式解析为DateTime。这个MSDN参考文件的底部有很多例子。
正如AdaTheDev所说,DateTime.TryParseExact
是前进的方向。根据MSDN关于"自定义日期和时间格式字符串"的页面,您需要缩写月份名称的MMM。
using System;
using System.Globalization;
class Test
{
static void Main()
{
string text = "09/Feb/2012:00:38:48";
DateTime value;
if (DateTime.TryParseExact(text, "dd/MMM/yyyy:HH:mm:ss",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out value))
{
Console.WriteLine("Success! {0}", value);
}
else
{
Console.WriteLine("Failed");
}
}
}
注意CultureInfo.InvariantCulture
的使用——例如,看起来不应该使用当前的区域性。
(当然,您可以使用Noda Time;)