gpt4 book ai didi

c# - 错误 “String was not recognized as a valid DateTime”

转载 作者:行者123 更新时间:2023-12-04 01:33:25 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





unable to parse a string of this format "1/29/2020 12:00:00 AM" into a valid DateTime

(2 个回答)


去年关闭。




我有这两个字符串值:

  • Test1 = "2020-01-29T00:00:00Z"
  • Test2 = "29/01/2020 00:00:00"

  • 我正在做这个比较:
    (DateTime.ParseExact(Test2.ToString(), "dd/M/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture).ToString("yyyy'-'MM'-'dd'T'00':'00':'00'Z'") != (DateTime.ParseExact(Test1["ProjectDateSinged"].ToString(), "yyyy'-'MM'-'dd'T'00':'00':'00'Z'", CultureInfo.InvariantCulture)).ToString()))

    但这会引发以下异常:

    Error “String was not recognized as a valid DateTime”



    谁能发现我的代码有什么问题?

    最佳答案

    将我的评论扩展为答案,您应该稍微更新您的格式字符串。对于 Test2你应该使用 dd/MM/yyyy hh:mm:ss格式。

    根据 Custom date and time format strings MM用于来自 01 的月份数至 12 , M来自 112 .您有 01月份数,所以 MM应该使用。

    您的日期中也没有 AM/PM 表示,因此 tt也不需要

    您将能够解析它们 Test2进入日期。

    var Test2 = "29/01/2020 00:00:00";
    var result = DateTime.ParseExact(Test2, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture);

    对于 Test1您可以使用 yyyy-MM-ddThh:mm:ssK (解析包含时区信息的日期)或 yyyy-MM-ddThh:mm:ss'Z'没有时区信息。

    要比较日期,您不需要将它们转换回字符串。您可以使用 Date 简单地获取日期组件 DateTime 的属性(property)结构。下面的代码返回 true
    var result = DateTime.ParseExact(Test1, "yyyy-MM-ddThh:mm:ss'Z'", CultureInfo.InvariantCulture).Date ==
    DateTime.ParseExact(Test2, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture).Date;

    以及这个,通过比较两个 DateTime仅实例

    var result = DateTime.ParseExact(Test1, "yyyy-MM-ddThh:mm:ss'Z'", CultureInfo.InvariantCulture) ==
    DateTime.ParseExact(Test2, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture);

    关于c# - 错误 “String was not recognized as a valid DateTime”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60375224/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com