How to Change Time in Datetime

How to change time in DateTime?

You can't change a DateTime value - it's immutable. However, you can change the variable to have a new value. The easiest way of doing that to change just the time is to create a TimeSpan with the relevant time, and use the DateTime.Date property:

DateTime s = ...;
TimeSpan ts = new TimeSpan(10, 30, 0);
s = s.Date + ts;

s will now be the same date, but at 10.30am.

Note that DateTime disregards daylight saving time transitions, representing "naive" Gregorian time in both directions (see Remarks section in the DateTime docs). The only exceptions are .Now and .Today: they retrieve current system time which reflects these events as they occur.

This is the kind of thing which motivated me to start the Noda Time project, which is now production-ready. Its ZonedDateTime type is made "aware" by linking it to a tz database entry.

Add or change time in datetime object

It's a bit fiddly, but you can use combine:

b = datetime.datetime.combine(a.date(), datetime.time(0,0,0))

How to modify datetime.datetime.hour in Python?

Use the replace method to generate a new datetime object based on your existing one:

tomorrow = tomorrow.replace(hour=12)

Return a datetime with the same attributes, except for those attributes given new values by whichever keyword arguments are specified. Note that tzinfo=None can be specified to create a naive datetime from an aware datetime with no conversion of date and time data.

How to change the hour and minutes of a DateTime variable

You can only read the values of Hour etc. If you want to set those properties, you need to use AddHours as you do or override the DateTime with a new DateTime.

You can do this:

else if (radioButton2.Checked == true)
{
var now = DateTime.Now
alarme[count] = new DateTime(now.Year, now.Month, now.Day,Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text), now.Second);
}

How do I change a DateTime variable's time?

The DateTimetype is immutable - all the properties are read-only, so you cannot set the Date, Time or even a part of them (years, mins etc).

Since none of the properties can be set directly, to change any part of one use one of the methods to AddSeconds(), AddYears() etc. These all create and return a new DateTime value with the desired adjustment. To subtract, just use a negative value:

WorldDate = WorldDate.AddMinutes(unit)
' to subtract:
WorldDate = WorldDate.AddMinutes(-unit)

The result must be assigned, either to a new variable or the existing one.

The reason is pretty simple: adding n minutes might roll over the Day or Month as well as other properties like DayOfYear or DayOfWeek. Allowing direct access would require lots of checking that the value is legal (like .Minutes = 67 or .Day = 33).

To set the date or time to specific values, create a new one using some of the old values and specifying the other values you want:

WorldDate  = New DateTime(WorldDate.Year, WorldDate.Month, WorldDate.Day, 
myHrs, mySecs, myMins)

How to set only time part of a DateTime variable in C#

Use the constructor that allows you to specify the year, month, day, hours, minutes, and seconds:

var dateNow = DateTime.Now;
var date = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 4, 5, 6);

How to change only the date portion of a DateTime, while keeping the time portion?

With the information you have given, I think this method is fine. If you want to avoid rewriting the oldDateTime.Hour,oldDateTime.Minute,0 piece often, you could create your own static class to simplify the method calls.

In your regular application:

class Program
{
static void Main(string[] args)
{
DateTime time = DateTime.Now;
DateTime newDateTime = MyDateTimeUtil.CreateDateFromTime(2015, 12, 12, time);
}
}

The static class that creates the DateTime value:

public static class MyDateTimeUtil
{
public static DateTime CreateDateFromTime(int year, int month, int day, DateTime time)
{
return new DateTime(year, month, day, time.Hour, time.Minute, 0);
}
}

Change time format in Python

I want to convert this time '23:59:05.823Z' to this format like '10:00
AM'

looks like you are using ISO date time format. You could do something like this.

>>> from datetime import datetime
>>> d = datetime.strptime("23:59:05.823Z", "%H:%M:%S.%fZ")
>>> d.strftime("%I:%M %p")
'11:59 PM'


Related Topics



Leave a reply



Submit