[英]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.