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

时间:2015-09-03 11:14:21

标签: c# datetime 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

或:

  

二零一五年十二月三十零日

我是否可以使用DateTime在控制台应用中执行此操作?

[编辑]

  

我知道如何在Console.WriteLine方法中格式化字符串或操纵字符串。我是什么   这里问的是DateTime课程中是否有方法可以做   此

7 个答案:

答案 0 :(得分:3)

试试这个

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

正如Panagiotis Kanavos在评论中提到的那样,你也可以用这种方式格式化

Console.WriteLine("{0:MM/dd/yyyy}", BirthDate);

答案 1 :(得分:2)

这里有已经正确的答案,但让我试着解释一下......

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

这意味着您的MM/dd/yyyy hh:mm:ss ttShortDatePattern属性的组合为CurrentCulture的{​​{1}}。

从这个结果中,您得到CurrentCulture / LongTimePattern: DateSeparator,这对您想要的结果非常有用。由于这些分隔符,您无需使用其他IFormatProvider来生成精确结果。

只需使用TimeSeparator格式化您的值,

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

使用日期属性,例如:

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

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

答案 4 :(得分:0)

您可以参考标准日期和时间格式字符串以获取大量选项。 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"));

答案 5 :(得分:-1)

     var datetime = BirthDate.Date.ToShortDateString();
     Console.WriteLine(datetime);

答案 6 :(得分:-1)

在没有硬编码格式字符串的情况下执行此操作的另一种方法是:

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