0

我正在使用一个日志文件,它给了我一个日期字符串,如下所示:

09/Feb/2012:00:38:48

我一直在网上查看有关转换日期的不同页面,例如MSDN 站点,但没有一个页面显示出与此类似的日期。

我是否需要手动重新格式化字符串以使其看起来类似于:

2012-02-09T00:38:48.0000000

或者有没有办法让它真正转换?

4

2 回答 2

6

您可以使用DateTime.TryParseExact将字符串从您指定的任何格式解析为 DateTime。此MSDN 参考的底部有很多示例。

于 2012-03-06T21:52:30.360 回答
3

正如 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;)

于 2012-03-06T21:57:56.873 回答