c#日期时间。将时间重置为0

c#日期时间。将时间重置为0,c#,datetime,C#,Datetime,我有dateTime=2020年3月25日下午1:25:46 我可以将时间重置为零吗2020年3月25日00:00:00 这是一个演示。在这种情况下,日期时间是2020年3月25日12:00:00 AM class Program { static void Main(string[] args) { var datetime = DateTime.Now; datetime = ResetTimeToStartOfDay(datetime);

我有dateTime=
2020年3月25日下午1:25:46
我可以将时间重置为零吗<代码>2020年3月25日00:00:00

这是一个演示。在这种情况下,日期时间是
2020年3月25日12:00:00 AM

class Program
{
    static  void Main(string[] args)
    {

        var datetime = DateTime.Now;
        datetime = ResetTimeToStartOfDay(datetime);

        Console.WriteLine(datetime);
        Console.ReadLine();
    }

    public static DateTime ResetTimeToStartOfDay(DateTime dateTime)
    {
        return new DateTime(
           dateTime.Year,
           dateTime.Month,
           dateTime.Day,
           0, 0, 0, 0);
    }
}
如何将日期重置为一天的开始?

更简单:

返回日期time.Date;
但是请注意,在
DateTime.Now的特定情况下,您可以使用
DateTime.Today

如何将日期重置为一天的开始

您已经使用了方法
ResetTimeToStartOfDay
,尽管使用功能等效的
dateTime.Date
有一种更简单的方法

现在你的问题变成了:

为什么在
Console.WriteLine(datetime)时看到
3/25/2020 12:00:00 AM
而不是
3/25/2020 00:00:00
被调用

当您在
DateTime
实例上调用
ToString()
时,它隐式地发生在
Console.WriteLine(DateTime)中,显示的格式与当前线程的区域性相匹配,然后使用
AM/PM
显示时间。如果要将日期显示为
3/25/2020 00:00:00
,请显式调用
ToString()
,并传递一个like
M/d/yyyy HH:mm:ss

Console.WriteLine(datetime.ToString(“M/d/yyyy HH:mm:ss”)


另请参见

FYI上午12点是一天的开始。