Python 时间,日期,时间戳(一)
python time模块中的函数调用了运行平台中的C语言库,因此一些函数的语义和细节定义(例如epoch的起始以及支持的最大值等)是与平台相关的。
Python time模块
术语解释:
- epoch:时间起始点。在Unix系统,epoch是1970的1月1日的零时。
- time模块只能处理epoch以后的时间,同时对于未来的时间也有个限制点,该点是由所在平台的C语言库决定。在Unix系统中,是2038年。
- 实时时间的精度可能会比输出值的单位大。例如,在大多数Unix系统上,时钟的精度是50Hz-100Hz。
- UTC为世界标准时间
- 时间戳就是从epoch时间起始点开始到当前经过的秒数
time模块中不同时间表达方式转换:
From | To | Use |
---|---|---|
timestamp | struct_time in UTC | gmtime() |
timestamp | struct_time in local time | localtime() |
struct_time in UTC | timestamp | calendar.timegm() |
struct_time in local time | timestamp | mktime() |
struct_time | str | strftime() |
str | struct_time | strptime() |
time模块中的struct_time类型:
该类型是gmtime()
,localtime()
和strptime()
的返回类型。该类型是包含了九个元素的元组。九个元素分别为:tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst。
time模块中的函数:
time()
返回当前时间的时间戳,即从epoch到现在的秒数。虽然返回的值是float类型,但很多系统的时间精度达不到这个程度。
>>> import time
>>> time.time()
1437638809.995983
ctime([secs])
将时间戳转化为当地时间的字符类型,如果不提供输入,则自动调用time()函数。
>>> import time
>>> t = time.time()
>>> time.ctime(t)
'Thu Jul 23 16:20:05 2015'
gmtime([secs])
将时间戳转换为struct_time in UTC,如果不提供输入,则自动调用time()函数。
>>> import time
>>> time.gmtime()
time.struct_time(tm_year=2015, tm_mon=7, tm_mday=23, tm_hour=8, tm_min=31, tm_sec=26, tm_wday=3, tm_yday=204, tm_isdst=0)
localtime([secs])
将时间戳转换为struct_time in local,如果不提供输入,则自动调用time()函数。mktime()是其逆运算。
>>> import time
>>> t = time.localtime()
>>> t
time.struct_time(tm_year=2015, tm_mon=7, tm_mday=23, tm_hour=16, tm_min=35, tm_sec=25, tm_wday=3, tm_yday=204, tm_isdst=0)
>>> time.mktime(t)
1437640525.0
strftime(format[, t])
将struct_time类型数据转换为特定的字符类型。如果不提供输入,则自动调用localtime()函数。具体字符缩写代表的意义可参考文献1。
>>> import time
>>> time.strftime("%Y-%m-%d %H-%M-%S",time.localtime())
'2015-07-23 16-45-32'
strptime(string[, format])
将字符类型的时间表达以一种特定的格式解析为struct_time类型。
>>> import time
>>> time.strptime("30 Nov 2015", "%d %b %Y")
time.struct_time(tm_year=2015, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=334, tm_isdst=-1)
参考文献:
- The Python Standard Library >> 15.3.time Time acess and conversionshttps://docs.python.org/2/library/time.html
- time - Functions for manipulating clock timehttp://pymotw.com/2/time/