我正在使用一个日志文件,它给我一个如下所示的日期字符串:
09/Feb/2012:00:38:48
我一直在网上查看有关转换日期的不同页面,例如MSDN site,但没有一个显示的日期与此类似。
我是否需要手动重新格式化字符串,使其类似于:
2012-02-09T00:38:48.0000000
或者有没有办法让它实际转换?
答案 0 :(得分:6)
您可以使用DateTime.TryParseExact从指定的任何格式将字符串解析为DateTime。这个MSDN ref的底部有很多例子。
答案 1 :(得分:3)
如AdaTheDev所述,DateTime.TryParseExact
是前进的方向。根据{{3}}上的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
的使用 - 例如,您不应该使用当前的文化。
(当然,您可以使用"custom date and time format strings"代替;)