如何在控制台应用程序中只输出日期?

How do I output just the date in a console application?

BirthDate = new DateTime(2015,12,30, 00, 0, 0);
// and Tried this too
//BirthDate = new DateTime(2015,12,30);
Console.WriteLine(BirthDate);

结果是这样的:

12/30/2015 12:00:00 AM

我要实现的是:

12/30/2015 00:00:00

或:

12/30/2015

有什么方法可以使用 DateTime 在控制台应用程序中执行此操作?

[编辑]

I know how to Format Strings in Console.WriteLine method or manipulate the strings. What i asked here was whether there is a method in DateTime class to do this.

使用当前区域性的指定格式和格式约定将当前 DateTime 对象的值转换为其等效的字符串表示形式。

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

试试这个

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

正如 Panagiotis Kanavos 在评论中提到的,您也可以这样格式化

Console.WriteLine("{0:MM/dd/yyyy}", BirthDate);
     var datetime = BirthDate.Date.ToShortDateString();
     Console.WriteLine(datetime);

使用日期属性,例如:

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

日期变量将包含日期,然后时间将显示 00:00:00..

不对格式字符串进行硬编码的另一种方法是:

    var currentCulture = CultureInfo.CurrentCulture;
    var shortDatePattern = currentCulture.DateTimeFormat.ShortDatePattern;
    Console.WriteLine(DateTime.Today.ToString(shortDatePattern));

您可以参考标准日期和时间格式字符串以获得更多选项。 msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx.

根据您的要求,您可以执行类似下面示例的操作。 (其他人已在此线程中提到)

BirthDate = new DateTime(2015,12,30, 0, 0, 0);
// and Tried this too
//BirthDate = new DateTime(2015,12,30);
// 12/30/2015 00:00:00
Console.WriteLine(BirthDate.ToString("MM/dd/yyyy HH:mm:ss"));
// or
// 12/30/2015
Console.WriteLine(BirthDate.ToString("MM/dd/yyyy"));

这里已经个正确的答案,但让我试着解释得更深入一些..

由于没有 Console.WriteLine(DateTime) 重载,您的代码将调用 Console.WriteLine(object) 重载,对于 DateTime 类型,此方法将生成 G standard format specifier representation of your CurrentCulture.

这意味着您的 ShortDatePattern and LongTimePattern 属性的组合是 CurrentCultureMM/dd/yyyy hh:mm:ss tt

从这个结果中,您的 CurrentCulture/ 作为 DateSeparator and : as a TimeSeparator,这对您想要的结果非常有用。由于这些分隔符,您将不需要使用另一个 IFormatProvider 来生成准确的结果。

只需将您的值格式化为 custom date and time format specifiers like;

Console.WriteLine("{0:MM/dd/yyyy HH:mm:ss}", BirthDate); // 12/30/2015 00:00:00
Console.WriteLine("{0:MM/dd/yyyy}", BirthDate); // 12/30/2015

或使用DateTime.ToString()方法等于;

Console.WriteLine(BirthDate.ToString("MM/dd/yyyy HH:mm:ss")); // 12/30/2015 00:00:00
Console.WriteLine(BirthDate.ToString("MM/dd/yyyy");// 12/30/2015