在C#中创建Midnight DateTime的最佳方法

时间:2008-10-29 09:29:11

标签: c# datetime

我需要创建一个午夜DateTime

我刚刚这样做了:

DateTime endTime = DateTime.Now;
endTime.Subtract(endTime.TimeOfDay);

尚未测试,我认为它有效,但有更好/更清洁的方式吗?

7 个答案:

答案 0 :(得分:152)

只需使用foo.DateDateTime.Today作为今天的日期

答案 1 :(得分:13)

答案 2 :(得分:12)

DateTime.Today

答案 3 :(得分:11)

DateTime endTime = DateTime.Now.Date;

现在endTime.TimeOfDay.ToString()会返回"00:00:00"

答案 4 :(得分:5)

您可以在午夜的确切秒数内使用DateTime.Today

    DateTime today = DateTime.Today;
    DateTime mid = today.AddDays(1).AddSeconds(-1);
    Console.WriteLine(string.Format("Today: {0} , Mid Night: {1}", today.ToString(), mid.ToString()));

    Console.ReadLine();

这应该打印:

Today: 11/24/2016 10:00:00 AM , Mid Night: 11/24/2016 11:59:59 PM

答案 5 :(得分:0)

var dateMidnight = DateTime.ParseExact(DateTime.Now.ToString("yyyyMMdd"), "yyyyMMdd", CultureInfo.InvariantCulture);

答案 6 :(得分:-1)

    private bool IsServiceDatabaseProcessReadyToStart()
    {
        bool isGoodParms = true;
        DateTime currentTime = DateTime.Now;
        //24 Hour Clock
        string[] timeSpan = currentTime.ToString("HH:mm:ss").Split(':');
        //Default to Noon
        int hr = 12;
        int mn = 0;
        int sc = 0;

        if (!string.IsNullOrEmpty(timeSpan[0]))
        {
            hr = Convert.ToInt32(timeSpan[0]);
        }
        else
        {
            isGoodParms = false;
        }

        if (!string.IsNullOrEmpty(timeSpan[1]))
        {
            mn = Convert.ToInt32(timeSpan[1]);
        }
        else
        {
            isGoodParms = false;
        }

        if (!string.IsNullOrEmpty(timeSpan[2]))
        {
            sc = Convert.ToInt32(timeSpan[2]);
        }
        else
        {
            isGoodParms = false;
        }

        if (isGoodParms == true )
        {
            TimeSpan currentTimeSpan = new TimeSpan(hr, mn, sc);
            TimeSpan minTimeSpan = new TimeSpan(0, 0, 0);
            TimeSpan maxTimeSpan = new TimeSpan(0, 04, 59);
            if (currentTimeSpan >= minTimeSpan && currentTimeSpan <= maxTimeSpan)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }
    }