我从数据库中获得了这整个字符串:
CCC_0293170118-10-2013-20-27-54.541
我有子字符串,因此我得到18-10-2013-20-27-54
,但它会抛出错误
我想将其转换为DateTime,以便我可以将其与另一个DateTime进行比较,格式为“{10/18/2013 8:28:46 PM}”以获得时差。
答案 0 :(得分:6)
您可以使用"dd-MM-yyyy-HH-mm-ss"
格式;
string s = "18-10-2013-20-27-54";
DateTime dt = DateTime.ParseExact(s, "dd-MM-yyyy-HH-mm-ss", CultureInfo.InvariantCulture);
Console.WriteLine(dt);
输出将是;
10/18/2013 8:27:54 PM
这里有 demonstration
。
答案 1 :(得分:2)
DateTime
没有格式。这只是一个价值。
要解析诸如“18-10-2013-20-27-54”之类的值,您应该使用DateTime.ParseExact
(或DateTime.TryParseExact
,如果有点预期数据可能无效的话) 。如下所示:
DateTime value = DateTime.ParseExact(text, "dd-MM-yyyy-HH-mm-ss",
CultureInfo.InvariantCulture);
在此处指定不变文化以确保使用公历是很重要的 - 如果您使用“当前系统文化”,那么它可以使用不同的默认日历系统。