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

时间:2013-04-08 10:07:46

标签: c# datetime

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

DateTime.Now.ToString("dd/mm/yyyy");

返回08/00/2013

的值

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

为什么会发生这种情况?

6 个答案:

答案 0 :(得分:42)

mm表示分钟,所以

DateTime.Now.ToString("dd/MM/yyyy");  

DateTime.Now.ToString("d");  

DateTime.Now.ToShortDateString()

works

Standard Date and Time Format Strings

答案 1 :(得分:10)

使用MM(月)代替mm(分钟):

DateTime.Now.ToString("dd/MM/yyyy");

检查here以获取更多格式选项。

答案 2 :(得分:4)

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

DateTime.Now.ToString("dd/MM/yyyy");

有关详细信息,请参阅MSDN上的Custom Date and Time Format Strings

答案 3 :(得分:3)

使用MM数月。 mm只需几分钟。

DateTime.Now.ToString("dd/MM/yyyy");

您可能会在一小时开始运行此代码,例如(00:0005.0018.00)和mm给您的分钟(00)日期时间。

来自Custom Date and Time Format Strings

  

“mm” - >分钟,从00到59.

     

“MM” - >这个月,从01到12。

这是DEMO。 (第一行的部分取决于您运行此代码的时间;)

答案 4 :(得分:2)

除了其他答案所说的内容之外,请注意“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

答案 5 :(得分:0)

只有很小的错误,请使用MM而不是mm,它将有效  编写如下:

 @DateTime.Now.ToString("dd/MM/yyy")