34

如何获得当前日期但没有时间?我正在尝试将日期从“dd.mm.yyyy”格式转换为“yyyy-MM-dd”,因为也返回时间,当我尝试执行以下操作时DateTime.Now出现错误( .)。String was not recognized as a valid DateTime

string test = DateTime.ParseExact(DateTime.Now.ToString(), "dd.MM.yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");
4

10 回答 10

50

使用Date属性:获取此实例的日期组件。

var dateAndTime = DateTime.Now;
var date = dateAndTime.Date;

变量date包含日期和时间部分将是 00:00:00。

或者

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

或者

DateTime.ToShortDateString 方法-

Console.WriteLine(DateTime.Now.ToShortDateString ());
于 2012-11-01T14:09:12.157 回答
41
String test = DateTime.Now.ToString("dd.MM.yyy");
于 2012-11-01T14:06:20.320 回答
23

你有没有尝试过

DateTime.Now.Date
于 2012-11-01T14:08:33.290 回答
10
String test = DateTime.Now.ToShortDateString();
于 2012-11-01T14:10:09.383 回答
8

它应该很简单

DateTime.Today
于 2014-11-27T10:09:17.383 回答
5

这应该有效:

string datetime = DateTime.Today.ToString();
于 2017-03-14T08:22:38.347 回答
2

您可以在没有时间的情况下获取当前的 UTC 日期。

string currentDate = DateTime.UtcNow.ToString("yyyy-MM-dd");

于 2021-05-20T22:57:05.137 回答
1

正如已经给出的几个答案中所述,您可以使用ToShorDateString()

DateTime.Now.ToShortDateString();

但是,如果您还想使用区域性作为参数,您可能会有点受阻。在这种情况下,您可以使用以下格式的ToString()方法:"d"

DateTime.Now.ToString("d", CultureInfo.GetCultureInfo("en-US"))
于 2015-10-07T10:53:11.057 回答
1

试试这个:

   var mydtn = DateTime.Today;
   var myDt = mydtn.Date;return myDt.ToString("d", CultureInfo.GetCultureInfo("en-US"));
于 2015-10-20T15:52:36.757 回答
0

如果您需要确切的示例,则应将格式添加到 ToString()

    string test = DateTime.ParseExact(DateTime.Now.ToString("dd.MM.yyyy"), "dd.MM.yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd");

但最好使用直接格式:

    string test = DateTime.Now.ToString("yyyy-MM-dd")
于 2012-11-01T14:10:22.830 回答