【问题标题】:Formatting Date-time Returns 24-10-2018T00:00:00 when i try to format 10/24/2018 12:00:00 AM当我尝试格式化 10/24/2018 12:00:00 AM 时,格式化日期时间返回 24-10-2018T00:00:00
【发布时间】:2018-11-29 09:30:42
【问题描述】:

我试图将 10/24/2018 12:00:00 AM 日期解析为 10-24-2018T12:15:25

我试过了 datetimeobject.AfterDate.Date.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss")

它返回我 12-10-2018T00:00:00

我怎样才能得到 12-10-2018T12:15:25

【问题讨论】:

  • I was trying to Parse 10/24/2018 12:00:00 AM date to 10-24-2018T12:15:25 嗯,这不是“解析”的意思。它们之间存在时差。您可以使用AddMinutesAddSeconds 方法和datetimeobject.AfterDate.Date,然后可以使用ToString 方法。
  • @SonerGönül 您不能在 DateTime 的 Date 组件中添加分钟。他选择了 Date 组件,这就是 tine 设置为 00:00 的原因。
  • @Haldo 为什么? .Date 属性仍返回 DateTime。顺便说一句对不起,但这个问题没有太大意义。第一个示例中的天数为 24,而第二个示例中的天数为 12。我不相信代码会在任何情况下返回 12-10-2018T00:00:00,因为它应该首先打印 4 位数的年份值等。
  • @SonerGönül 它返回一个日期时间,其中时间组件设置为 00:00:00。是的,这个问题没有多大意义。

标签: c# asp.net datetime formatting


【解决方案1】:

这个问题的措辞很难理解,但是,我会做出最好的猜测。我假设 datetimeobject 实际上不是 DateTime 对象,而是包含 DateTime AfterDate 的其他类。

看起来您正在选择 DateTime 对象的 Date 部分。将您的代码更新为datetimeobject.AfterDate.ToString(@"s", CultureInfo.InvariantCulture)。这里使用了标准的 DateTime 格式说明符“s”,其格式为:“yyyy-MM-ddTHH:mm:ss”。

【讨论】:

  • 请注意,如果: 周围没有单引号,将使用特定于区域性的时间分隔符。不过,我个人会使用不变的文化 - 否则年/月/日部分可能会意外使用非公历。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2014-04-26
  • 1970-01-01
相关资源
最近更新 更多