【问题标题】:How to remove zeros from datetime string C# [duplicate]如何从日期时间字符串C#中删除零[重复]
【发布时间】:2020-01-02 12:41:49
【问题描述】:

我从 API DateTime.Date 获取,这意味着 Date 没有时间,有时我得到的 DateTime 具有完整的有效日期,但如果我在没有时间的情况下获得价值并且因为财产是DateTime 的类型,它还包括时间,但值为零。

所以我的字符串看起来像这样:

29/08/2019 00:00:00

我如何识别它何时没有有效时间并从我的字符串中删除这个00:00:00

谢谢大家

干杯

【问题讨论】:

  • 看看format strings
  • @John 有时我会得到完整的 DateTime 值,我需要识别它何时是零并格式化它..
  • 这不是您在问题中所问的,尽管如果您首先将其解析为 DateTime 对象 (dt),则可以检查 if (dt.Date == dt)
  • @Roxy'Pro 你可以使用if (dt.TimeOfDay.Ticks == 0) ...来检查dt是否代表午夜。

标签: c# string datetime


【解决方案1】:

解析它然后使用ToShortDateStringToString("d")

string result = DateTime.Parse("29/08/2019 00:00:00").ToShortDateString();

有时我会得到完整的 DateTime 值(带有有效的时间部分),所以我 需要识别它何时为零并将其格式化..短日期 字符串,我不能在每种情况下都使用它

那么,将DateTime 与它自己的Date 属性进行比较:

string dateString = "29/08/2019 01:00:00"; // with this sample the 'if' will not be entered because there is a time portion
DateTime dt = DateTime.Parse(dateString);
if(dt.Date == dt)
{
    // there is no time portion in this DateTime
    dateString = dt.ToShortDateString();
}

【讨论】:

  • 有时我会得到完整的 DateTime 值(带有有效的时间部分),所以我需要识别它何时为零并将其格式化.. 短日期字符串,我不能在每种情况下都使用它
  • 您可以使用if (dt.TimeOfDay.Ticks == 0) ... 来检查dt 是否代表午夜。
  • @TimSchmelter 你就是男人!谢谢!有什么推荐的 c# 学习资源吗?
猜你喜欢
  • 2015-04-15
  • 2017-05-05
  • 1970-01-01
  • 2021-04-09
  • 2010-10-25
  • 2018-12-14
  • 1970-01-01
  • 1970-01-01
  • 2014-05-30
相关资源
最近更新 更多