【问题标题】:Not able to convert the datetime stored as a string to Datetime within a IList无法将存储为字符串的日期时间转换为 IList 中的日期时间
【发布时间】:2018-04-24 10:27:46
【问题描述】:

我正在开发一个 WebApi,它使用 Lambda 从数据库接收数据并存储在 IList 中。我得到的输出数据格式为"2018-04-20T14:39:20.01"。但我想将日期格式显示为“20-Apr-2018 / 02:39:20 PM".

得到输出后,我会处理日期并转换为我想要的格式,并存储为字符串。

现在,当我尝试将该数据发送回 IList 时,收到错误消息,指出该字符串未被识别为有效的日期时间。

string val = statusSourceType1[0].updatedDate.Value.ToString("dd-MMM-yyyy hh:mm:ss tt").ToString();
                #1
                statusSourceType1[0].updatedDate = DateTime.Parse(val);
                #2
                statusSourceType1[0].updatedDate = DateTime.ParseExact(val, "dd-MMM-yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
                #3
                statusSourceType1[0].updatedDate = DateTime.ParseExact(val, "dd-MMM-yyyy hh:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces);

在上面的代码中,第一行将日期格式从2018-04-20T14:39:20.01 转换为15-Apr-2018 12:23:21 PM

转换完成后,我想将字符串值转换为数据时间并与输出一起传递,因为我的 UI 需要的是日期时间而不是字符串。

在将字符串转换为日期时间时,出现运行时错误“字符串未被识别为有效日期时间”或日期时间格式恢复到其原始状态。

请帮帮我。

【问题讨论】:

    标签: c# list asp.net-web-api lambda datetime-format


    【解决方案1】:

    "...日期时间存储为字符串..."

    你的问题就在那里。 您正在使用 WebApi 并且您的 UI 需要一个 DateTime,而不是一个字符串。那么,您为什么还要费心将日期转换为字符串并返回呢?

    DateTime 没有显示格式 - 只有字符串表示。

    只需向 UI 发送 DateTime 结构的实例,让 UI 处理显示格式 - 这是 UI 的职责,而不是服务器的职责。

    【讨论】:

    • 点@Zohar。我向我的架构师传达了同样的信息,他认为所有的数据操作都需要在 API 中完成,而不是在 UI 中完成......:(
    • 这不是数据操作 - 您不会更改日期时间的值,只会更改它向人类客户端表示的方式 - 在任何情况下您都无法控制服务器上的显示格式,如果您的客户正在接收 DateTime 结构的实例 - 正如我所写 - DateTime 不存储显示格式。
    【解决方案2】:

    如果需要,请尝试设置文化

      Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    

    那就试试

      dt.ToString("dd/MMMM/yyyy"); //or whichever
    

    作为您的评论。回答简单的问题,如果您使用 ddmmyyyy 将 1112018 设置为 date,您如何期望让转换恢复到数据时间。你的app设计不对,让View做格式化,传dt obj

    让你 View 期待字符串版本的 dt

    【讨论】:

    • 将日期时间转换为字符串的工作方式与 @Alex 的预期相同。当我尝试将字符串设置回我的 UI 所期望的日期时间时,我的问题就出现了。
    • @UdhayaS 你怎么能这样做?您可以使用ToString() 设置任何格式
    • 我也在做同样的事情。感谢您的意见,吉姆。
    猜你喜欢
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 2022-08-18
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多