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

Pio*_*nom 13 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");
}
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

编辑

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

Tim*_*ter 29

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

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

自定义日期和时间格式字符串

  • +1两个答案都很好,但我把支票给了那个先回答的人. (2认同)

DGi*_*bbs 9

这个:

Date = date.ToString("YYYY-mm-dd");
Run Code Online (Sandbox Code Playgroud)

应该是这样的:

Date = date.ToString("yyyy-MM-dd");
Run Code Online (Sandbox Code Playgroud)

小写mm会给你分钟.