How to change time in DateTime?

Viewed 533915

How can I change only the time in my DateTime variable "s"?

DateTime s = some datetime;
29 Answers

You can assign an initial value to a new DateTime value in many different ways:

  • Extension Method

Extension method DateTime

    public static DateTime ChangeTime(this DateTime dateTime, int hours, int minutes, int seconds = default, int milliseconds = default)
    {
        return new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, hours, minutes, seconds, milliseconds, dateTime.Kind);
    }

then using ChangeTime:

    DateTime datetime = DateTime.Now; //Your DateTime
    datetime = datetime.ChangeTime(12, 20, 10);
  • using the Add methods

    DateTime datetime = DateTime.Now; //Your DateTime
    datetime = datetime.Date.AddHours(12).AddMinutes(20).AddSeconds(10);
    
  • using the Timespan

    DateTime datetime = DateTime.Now; //Your DateTime
    datetime = datetime.Date.Add(new TimeSpan(12, 20, 10));
    
  • using initial value

    DateTime datetime = DateTime.Now;
    datetime = new DateTime(datetime.Year, datetime.Month, datetime.Day, 12, 20, 10);
    

To set end of a day:

date = new DateTime(date.Year, date.Month, date.Day, 23, 59, 59);
Related