我正在使用一个日志文件,它给了我一个日期字符串,如下所示:
09/Feb/2012:00:38:48
我一直在网上查看有关转换日期的不同页面,例如MSDN 站点,但没有一个页面显示出与此类似的日期。
我是否需要手动重新格式化字符串以使其看起来类似于:
2012-02-09T00:38:48.0000000
或者有没有办法让它真正转换?
我正在使用一个日志文件,它给了我一个日期字符串,如下所示:
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;)