【问题标题】:Convert 7/25/2021 11:48:13 AM to 2021-07-25T11:48:13.820000Z [duplicate]将 2021 年 7 月 25 日上午 11:48:13 转换为 2021-07-25T11:48:13.820000Z [重复]
【发布时间】:2021-10-03 01:49:32
【问题描述】:

我正在使用 .Net Core Web API 和 EF

在数据库中,我们有一个可为空的 DateTime 列 例如:2021-07-25 11:48:13.820

现在,当我使用 Linq 查询数据库时,日期时间返回为 7/25/2021 11:48:13 AM

但是我想转成这种格式2021-07-25T11:48:13.820000Z

老实说,我什至现在都不知道这种格式叫什么。也许如果有人可以告诉我格式名称,那么它将帮助马找到解决方案。但实际上我被卡住了

【问题讨论】:

  • “现在,当我使用 Linq 查询数据库时,日期时间返回为 7/25/2021 11:48:13 AM” - 直到您获得最终所需的字符串格式(在这种情况下 ISO8601)您应该将从数据库中检索到的值保留为 .NET DateTime
  • @YongShun 我试过了,它给了我 2021-07-25T11:48:13Z 我不想要那个
  • 你为什么期待820000?似乎您的值不是那么精确(它没有毫秒/亚毫秒分量)。如果数据在那里,它将被包括在内:example
  • 返回的日期时间是 NOT 7/25/2021 11:48:13 AM。这就是您的计算机格式化返回日期的方式。 DateTime 值只是一个 ulong - 它没有格式。

标签: c# asp.net .net datetime webapi


【解决方案1】:

你可以使用

DateTime.Now.ToUniversalTime().ToString("o") //case sensitive

您可以参考this 页面了解更多格式选项。

【讨论】:

  • 你试过DateTime.Now.ToString("u")吗?
  • @Llama 曾经在某个项目中,为什么?
  • @Llama Weird,根据 Microsoft 文档,因为它对我有用,它应该做 OP 想要的完全相同的事情。
  • OP 想要 ISO8601 格式,而 "u" 不会产生这种格式(它在日期和时间值之间缺少 T)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 2021-04-29
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 2021-08-26
  • 2021-12-18
相关资源
最近更新 更多