繁体   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