猿问

如何在 Visual Studio 2017 中的 C# Razor 中获取当前日期

我有一些C# Razor代码应该生成当前日期并将其格式化为以下字符串格式 - yyyy-mm-dd。它似乎不适用于我正在使用的代码。我得到的2001-01-02不是当前日期。我不确定我在这里做错了什么。默认情况下不DateTime()给出当前日期吗?


var today = new DateTime();

var dd = today.Date.Day;


var mm = today.Month + 1;

var yyyy = today.Year;


var yyyy_string = yyyy.ToString();

var mm_string = mm.ToString();

var dd_string = dd.ToString();


if (dd < 10)

{

    dd_string = '0' + dd_string;

}


if (mm < 10)

{

    mm_string = '0' + mm_string;

}

var today_string = yyyy_string + '-' + mm_string + '-' + dd_string;


MM们
浏览 183回答 2
2回答

Smart猫小萌

您可以获得格式化的当前日期加上一个月string&nbsp;today_string&nbsp;=&nbsp;DateTime.Now.AddMonths(1).ToString("yyyy-MM-dd");输出类似"2019-07-27"月份和日期始终为两位数的内容。请注意,对于 < 10 的数字,该格式"yyyy-M-d"将生成带有一位数字的月份和日期。静态属性DateTime.Now产生当前日期和时间。我们还可以用来DateTime.Date去掉时间部分,但这不是必需的,因为我们在 中指定了所需的格式ToString。您正在将月份数字加 1。这是错误的,因为在 12 月,您会得到 13。此外,在每月 31 日(例如 1 月 31 日),您会得到 2 月 31 日。因此,最好使用 为整个日期添加 1 个月.AddMonths(1)。此方法会注意生成有效的日期。

侃侃尔雅

你不能只使用 DateTime.Now 吗?&nbsp; &nbsp; var today = DateTime.Now;&nbsp; &nbsp; var dd = today.Date.Day;&nbsp; &nbsp; var mm = today.Month + 1;&nbsp; &nbsp; var yyyy = today.Year;&nbsp; &nbsp; var yyyy_string = yyyy.ToString();&nbsp; &nbsp; var mm_string = mm.ToString();&nbsp; &nbsp; var dd_string = dd.ToString();&nbsp; &nbsp; if (dd < 10)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; dd_string = '0' + dd_string;&nbsp; &nbsp; }&nbsp; &nbsp; if (mm < 10)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; mm_string = '0' + mm_string;&nbsp; &nbsp; }&nbsp; &nbsp; var today_string = yyyy_string + '-' + mm_string + '-' +&nbsp;&nbsp; &nbsp; dd_string;
随时随地看视频慕课网APP
我要回答