How do you do reverse
gmtime(), where you put the time + date and get the number of seconds?
I have strings like
'Jul 9, 2009 @ 20:02:58 UTC', and I want to get back the number of seconds between the epoch and July 9, 2009.
I have tried
time.strftime but I don’t know how to use it properly, or if it is the correct command to use.
If you got here because a search engine told you this is how to get the Unix timestamp, stop reading this answer. Scroll down one.
If you want to reverse
time.gmtime(), you want
You can turn your string into a time tuple with
time.strptime(), which returns a time tuple that you can pass to
import calendar import time calendar.timegm(time.strptime('Jul 9, 2009 @ 20:02:58 UTC', '%b %d, %Y @ %H:%M:%S UTC')) 1247169778
More information about calendar module here
Use the time module:
epoch_time = int(time.time())
time.gmtime maps timestamp
In : import time In : time.gmtime(0) Out: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
time.mktime(time.gmtime(0)) gives you a timestamp shifted by an amount that depends on your locale, which in general may not be 0.
In : time.mktime(time.gmtime(0)) Out: 18000.0
The inverse of
In : import calendar In : calendar.timegm(time.gmtime(0)) Out: 0
ep = datetime.datetime(1970,1,1,0,0,0) x = (datetime.datetime.utcnow()- ep).total_seconds()
This should be different from
int(time.time()), but it is safe to use something like
x % (60*60*24)
Unlike the time module, the datetime module does not support leap seconds.
t = datetime.strptime('Jul 9, 2009 @ 20:02:58 UTC',"%b %d, %Y @ %H:%M:%S %Z")
There are two ways, depending on your original timestamp: