如何在控制台应用程序中只输出日期?
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
属性的组合是 CurrentCulture
的 MM/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
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 inDateTime
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
属性的组合是 CurrentCulture
的 MM/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