Python Datetime Add
I have a datetime value in string format. How can I change the format from a '-' separated date to a '.' separated date. I also need to add 6 hours to let the data be in my time zo
Solution 1:
You are adding the string representation of the timedelta()
:
>>>from datetime import timedelta>>>print timedelta(minutes=6*60)
6:00:00
Sum datetime
and timedelta
objects, not their string representations; only create a string after summing the objects:
from datetime import datetime, timedelta
s = '2013-08-11 09:48:49'
mytime = datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
mytime += timedelta(hours=6)
print mytime.strftime("%Y.%m.%d %H:%M:%S")
This results in:
>>> from datetime import datetime, timedelta
>>> s = '2013-08-11 09:48:49'
>>> mytime = datetime.strptime(s, "%Y-%m-%d %H:%M:%S")
>>> mytime += timedelta(hours=6)
>>> print mytime.strftime("%Y.%m.%d %H:%M:%S")
2013.08.1115:48:49
However, you probably want to use real timezone objects instead, I recommend you use the pytz
library:
>>> from pytz import timezone, utc
>>> eastern = timezone('US/Eastern')
>>> utctime = utc.localize(datetime.strptime(s, "%Y-%m-%d %H:%M:%S"))
>>> local_tz = utctime.astimezone(eastern)
>>> print mytime.strftime("%Y.%m.%d %H:%M:%S")
2013.08.1115:48:49
This will take into account daylight saving time too, for example.
Post a Comment for "Python Datetime Add"