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

时间:2013-10-15 20:30:47

标签: c# datetime-format

我很想改变搜索的日期时间格式,从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是我的问题。

1 个答案:

答案 0 :(得分:2)

这不起作用:

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

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

但更重要的是,为什么要尝试将日期从一个字符串格式转换为另一个?如果你有DateTime值(在这种情况下是CreatedAt),你可以随意渲染它(例如CreatedAt.ToString("yyyy-MM-dd"))将它转换为字符串似乎没有任何意义解析它的一部分。

正如鲍勃指出的那样,如果您想要的只是日期部分,请选择CreatedAt.Date。尽量考虑一下你的真正目标是什么,尽量采用最短的路线,尽可能少转换(因此转换问题)。