I am trying to get utc date string as "YYYYMMDD"
For now I do the following,
nowTime = time.gmtime(); nowDate = date(nowTime.tm_year, nowTime.tm_mon, nowTime.tm_mday) print nowDate.strftime('%Y%m%d')
I used to do:
datetime.date.today().strftime()
but this gives me date string in local TZ
How can I get an UTC date string?
Simply use datetime. datetime. utcnow(). strftime("%a %b %d %H:%M:%S %Z %Y") can solve your problem already.
This datetime object will have no timezone associated with it. Therefore assign the UTC timezone to this datetime object using replace(tzinfo=pytz. UTC) function. Convert the timezone of the datetime object to local timezone by calling the astimezone() function on datetime object.
You can use the datetime module to convert a datetime to a UTC timestamp in Python. If you already have the datetime object in UTC, you can the timestamp() to get a UTC timestamp. This function returns the time since epoch for that datetime object.
from datetime import datetime, timezone datetime.now(timezone.utc).strftime("%Y%m%d")
Or as Davidism pointed out, this would also work:
from datetime import datetime datetime.utcnow().strftime("%Y%m%d")
I prefer the first approach, as it gets you in the habit of using timezone aware datetimes - but as J.F. Sebastian pointed out - it requires Python 3.2+. The second approach will work in both 2.7 and 3.2 branches.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With