DateTime.Today.ToString("dd/mm/yyyy")返回无效的DateTime值

Xer*_*xes 22 c# datetime

我想以GBR格式获取今天的日期,但是,

DateTime.Now.ToString("dd/mm/yyyy");
Run Code Online (Sandbox Code Playgroud)

返回值为 08/00/2013

因此00在月份组中返回而不是返回月份04.

任何想法为什么会这样?

Tim*_*ter 43

较低mm意味着分钟,所以

DateTime.Now.ToString("dd/MM/yyyy");  
Run Code Online (Sandbox Code Playgroud)

要么

DateTime.Now.ToString("d");  
Run Code Online (Sandbox Code Playgroud)

要么

DateTime.Now.ToShortDateString()
Run Code Online (Sandbox Code Playgroud)

工作.

标准日期和时间格式字符串

  • 关于试图编辑我的答案的人,日,月和年的顺序取决于当前的文化.这就是为什么你注意到第一种和其他方法之间的差异.你总是可以通过使用DateTime.ToString的重载来使用特定文化. (2认同)

Ars*_*had 10

使用MM(月)而不是mm(分钟):

DateTime.Now.ToString("dd/MM/yyyy");
Run Code Online (Sandbox Code Playgroud)

检查这里更多的格式选项.


Ode*_*ded 6

应该是MM几个月。你要求几分钟。

DateTime.Now.ToString("dd/MM/yyyy");
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅MSDN 上的自定义日期和时间格式字符串


Kli*_*cou 6

除了其他答案所说的内容之外,请注意“dd/MM/yyyy”中的“/”字符不是文字字符:它代表当前用户文化的日期分隔符。因此,如果当前文化使用 yyyy-MM-dd 日期,那么当您调用 toString 时,它将为您提供一个日期,例如“31-12-2016”(使用破折号而不是斜线)。要强制它使用斜杠,您需要转义该字符:

DateTime.Now.ToString("dd/MM/yyyy")     --> "19-12-2016" for a Japanese user
DateTime.Now.ToString("dd/MM/yyyy")     --> "19/12/2016" for a UK user
DateTime.Now.ToString("dd\\/MM\\/yyyy") --> "19/12/2016" independent of region
Run Code Online (Sandbox Code Playgroud)