【问题标题】:date time format issues in C#C#中的日期时间格式问题
【发布时间】:2013-10-15 20:30:47
【问题描述】:

我正在尝试将搜索的日期时间格式从 ddd MMM dd HH:mm:ss zzz yyyy 更改为只是 yyyy-MM-dd 我无法在我的转换中获得正确的语法所以任何帮助会很棒。

public DateTime CreatedAt
{
    get
    {
        return DateTime.ParseExact(this.created_at, "ddd MMM dd HH:mm:ss zzz yyyy", CultureInfo.InvariantCulture);
    }
}

public DateTime SearchDate
{
    get
    {
        return DateTime.ParseExact(CreatedAt.ToString(), "yyyy-MM-dd", CultureInfo.InvariantCulture);
    }
}

searchDate 是我的问题。

【问题讨论】:

  • 您是否遇到错误,或者获取的 DateTime 对象的值有误?

标签: c# datetime-format


【解决方案1】:

这行不通:

return DateTime.ParseExact(CreatedAt.ToString(), "yyyy-MM-dd", CultureInfo.InvariantCulture);

因为CreatedAt.ToString() 将创建一个默认格式的日期时间字符串(不是yyyy-MM-dd,这是您尝试读取它的方式)。

但更重要的是,您为什么要尝试将日期从一种字符串格式时间转换为另一种?如果您有 DateTime 值(在本例中为 CreatedAt),您可以根据需要渲染它(例如 CreatedAt.ToString("yyyy-MM-dd"))将其转换为字符串并解析它的一部分似乎没有任何意义.

正如 Bob 所指出的,如果您想要的只是日期部分,请选择 CreatedAt.Date。不过,请尝试考虑您的真正目标是什么,并尝试以最少的转化(以及因此的转化问题)尽可能最短的路线。

【讨论】:

  • 大声笑是的,不幸的是,有些吹毛求疵的人否决了它,尽管这是最有帮助的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 1970-01-01
  • 2021-12-19
  • 2018-09-23
  • 1970-01-01
相关资源
最近更新 更多