C#解析日期/时间,具有我以前从未见过的独特格式

时间:2011-03-23 20:38:17

标签: c# datetime

我正在尝试使用我之前从未见过的特殊格式解析日期/时间...

2011-03-08-12.26.27.000000
2011-03-08-13.00.03.000000

C#中是否有一个简单的功能,我很容易将其转换为日期/时间?

谢谢,非常感谢您的帮助。

6 个答案:

答案 0 :(得分:8)

DateTime.ParseExact("2011-03-08-12.26.27.000000", "yyyy-MM-dd-HH.mm.ss.ffffff", null)

http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx

答案 1 :(得分:2)

这就是你要找的东西:

DateTime.ParseExact("2011-03-08-12.26.27.000000", "yyyy-MM-dd-HH.mm.ss.ffffff", CultureInfo.InvariantCulture);

托马斯的答案是正确的(大多数情况下),但由于我提到的错误作为对他答案的回答而无法解决。我也尝试使用:“2011-03-23-13.00.00.000000”,但它失败了。 hh需要HH

答案 2 :(得分:1)

您应该使用DateTime.ParseExact,代码如下:

var dateString = "2011-03-08-12.26.27.000000";
var result = DateTime.ParseExact(dateString, "yyyy-MM-dd-HH.mm.ss.ffffff", CultureInfo.InvariantCulture);

答案 3 :(得分:0)

将第三个-替换为,然后使用DateTime.Parse

答案 4 :(得分:0)

是的,您可以使用DateTime.ParseExact(dateString, "yyyy-MM-dd-HH.mm.ss.ffffff")。 ParseExact要求字符串完全是指定的格式,但是根据该限制,它可以处理任何可以表示为格式字符串的数据格式,这在这里没有问题。

答案 5 :(得分:0)

由于某些原因,上述答案都没有为我所描述的模式。所以我使用了TryParseExact,如下所示:

string pattern = "yyyy-MM-dd-HH.mm.ss.ffffff";
DateTime parsedDate;

if (DateTime.TryParseExact(dmr.DMR2ODAT, pattern, null,
             DateTimeStyles.None, out parsedDate))
    ...

哪个有效。发布以防其他人遇到同一问题。