C# 中的日期时间格式问题

本文关键字:格式 问题 时间 日期 | 更新日期: 2023-09-27 18:35:25

我正在更改搜索的日期时间格式,从 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);
    }
}

搜索日期是我的问题。

C# 中的日期时间格式问题

这行不通:

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

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

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

正如鲍勃指出的那样,如果您想要的只是日期部分,请CreatedAt.Date .不过,试着想想你的真正目标是什么,并尝试采取最短的路线,尽可能少的转化(因此转换问题)。