簡體   English   中英

將異常的DateTime字符串轉換為DateTime對象

[英]Converting Unusual DateTime String to DateTime Object

我正在使用一個日志文件,該文件為我提供了一個如下所示的日期字符串:

09/Feb/2012:00:38:48

我一直在網上查看有關轉換日期的不同頁面,例如MSDN網站 ,但是沒有一個頁面顯示與該日期相當的日期。

我是否需要手動重新格式化字符串以使其類似於:

2012-02-09T00:38:48.0000000

還是有一種方法可以將其實際轉換?

您可以使用DateTime.TryParseExact從您指定的任何格式將字符串解析為DateTime。 MSDN ref的底部有大量示例。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM