【问题标题】:How to format this string so that it can be recognized by Convert.ToDateTime?如何格式化这个字符串以便它可以被 Convert.ToDateTime 识别?
【发布时间】:2024-04-23 13:45:01
【问题描述】:

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

CCC_0293170118-10-2013-20-27-54.541

我有子字符串,所以我得到18-10-2013-20-27-54,但它会引发错误

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

【问题讨论】:

    标签: c# asp.net datetime formatting


    【解决方案1】:

    你可以使用"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。
    • 谢谢@Habib。我认为这是我的第一个答案,它比乔恩的答案:)
    【解决方案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);
    

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

    【讨论】:

    • 也非常感谢你,你一直是个英雄 =)
    最近更新 更多