2

我从数据库中得到了整个字符串:

CCC_0293170118-10-2013-20-27-54.541

我有子字符串,所以我得到了18-10-2013-20-27-54,但它抛出了一个错误

我想将它转换为 DateTime,以便我可以将它与另一个格式为“{10/18/2013 8:28:46 PM}”的 DateTime 进行比较,以获得时差。

4

2 回答 2

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.

于 2013-10-29T18:11:03.323 回答
2

ADateTime没有格式。这只是一个值。

要解析诸如“18-10-2013-20-27-54”之类的值,您应该使用DateTime.ParseExact(或者DateTime.TryParseExact,如果有点预计数据可能无效)。所以像:

DateTime value = DateTime.ParseExact(text, "dd-MM-yyyy-HH-mm-ss",
                                     CultureInfo.InvariantCulture);

在这里指定不变的文化以确保使用公历很重要 - 如果您使用“当前系统文化”,那么它可以使用不同的默认日历系统。

于 2013-10-29T18:11:38.697 回答