调用ToString(“YYYY-mm-dd”)会导致错误的日期格式

时间:2013-04-19 13:58:25

标签: c# string-formatting

我有一个带有DateTime对象的构造函数:

public Report(DateTime date, string start = "0", string end = "0")
{
    Logger.Info("Creating a new Report...");

    StartTime = start;
    EndTime = end;
    Date = date.ToString("YYYY-mm-dd");

    SetStartEndTimes();

    Logger.Info("Report Created");
}

现在,3天前工作正常。但是,我休息后今天回来,这是我看到的结果:

enter image description here

如您所见,传入的日期是正确的。但是,在格式之后,它不是。再次,这在我休息之前有效。我回来了,我明白了。我错过了什么吗?为什么从开始工作后它的格式会如此错误?

修改

谢谢你们。混乱的部分正在查看以前版本的源代码控制,这很有用。或许我想象它有效。我不知道。但这种方式已经持续了大约3个月。

2 个答案:

答案 0 :(得分:27)

年份必须是小写和月份大写:

Date = date.ToString("yyyy-MM-dd");  // btw, lowercase mm means minutes

Custom Date and Time Format Strings

答案 1 :(得分:9)

此:

Date = date.ToString("YYYY-mm-dd");

应该是这样的:

Date = date.ToString("yyyy-MM-dd");

小写mm会给你分钟。