将datetime转换为POSIX时间
如何将date时间或date对象转换为Python中的POSIX时间戳? 有一些方法可以从时间戳中创build一个date时间对象,但是我似乎没有find任何明显的方式来完成相反的操作。
import time, datetime d = datetime.datetime.now() print time.mktime(d.timetuple())
对于UTC计算, calendar.timegm
是time.gmtime
的倒数。
import calendar, datetime d = datetime.datetime.utcnow() print calendar.timegm(d.timetuple())
在python中,time.time()可以返回秒作为一个浮点数,包括一个微秒的十进制分量。 为了将date时间转换回这种表示forms,您必须添加微秒组件,因为直接时间组件不包含微秒组件。
import time, datetime posix_now = time.time() d = datetime.datetime.fromtimestamp(posix_now) no_microseconds_time = time.mktime(d.timetuple()) has_microseconds_time = time.mktime(d.timetuple()) + d.microsecond * 0.000001 print posix_now print no_microseconds_time print has_microseconds_time
请注意,Python现在(3.5.2)在datetime
对象中包含一个内置的方法 :
>>> import datetime >>> now = datetime.datetime.now() >>> now.timestamp() # Local time 1509315202.161655 >>> now.replace(tzinfo=datetime.timezone.utc).timestamp() # UTC 1509329602.161655