常见的时间表示形式为:
timestamp(时间戳) 也称为Unix时间 或 POSIX时间;它是一种时间表示方式,表示从格林尼治时间1970年1月1日0时0分0秒开始到现在所经过的毫秒数,其值为float类型。 但是有些编程语言的相关方法返回的是秒数(Python就是这样),这个需要看方法的文档说明。需要说明的是时间戳是个差值,其值与时区无关。
提供各种与时间相关的函数。可以返回时间戳或struct_time形式的时间或字符串形式的时间。
time.asctime([t]) | 将一个tuple或struct_time形式的时间(可以通过gmtime()和localtime()方法获取)转换为一个24个字符的时间字符串,格式为: "Fri Aug 19 11:14:16 2016"。如果参数t未提供,则取localtime()的返回值作为参数。 |
time.ctime([secs]) | 功能同上,将一个秒数时间戳表示的时间转换为一个表示当前本地时间的字符串。如果参数secs没有提供或值为None,则取time()方法的返回值作为默认值。ctime(secs)等价于asctime(localtime(secs)) |
time.time() | 返回时间戳(自1970-1-1 0:00:00 至今所经历的秒数) |
time.localtime([secs]) | 返回以指定时间戳对应的本地时间的 struct_time对象(可以通过下标,也可以通过 .属性名 的方式来引用内部属性)格式 |
time.strftime(time_format_str[, struct_time_instance]) | 将struct_time对象实例转换成字符串,如果struct_time_instance不指定则取当前本地时间对应的time_struct对象 |
time.strptime(time_str, time_format_str) | 将时间字符串转换为struct_time时间对象,如:time.strptime('2018-11-03 16:53', '%Y-%m-%d %H:%M') |
>>> time.time()
1541234551.9965222
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=11, tm_mday=3, tm_hour=16, tm_min=45, tm_sec=37, tm_wday=5, tm_yday=307, tm_isdst=0)
>>> time.ctime()
'Sat Nov 3 16:49:08 2018'
>>> time.asctime()
'Sat Nov 3 16:49:18 2018'
>>> print(time.strftime('%Y-%m-%d %H:%M'))
2018-11-03 16:53
>>> time.strptime('2018-11-03 16:53', '%Y-%m-%d %H:%M')
time.struct_time(tm_year=2018, tm_mon=11, tm_mday=3, tm_hour=16, tm_min=53, tm_sec=0, tm_wday=5, tm_yday=307, tm_isdst=-1)
注意到time.ctime()和time.asctime()输出的字符串形式的时间与我们的习惯格式不同,一般使用time.strftime()转换。
此外还有datetime模块可以使用。
os.stat() 方法用于在给定的路径上执行一个系统 stat 的调用。返回值中有:
这两个返回值均为时间戳形式。
>>> print(os.stat("D:/mm.cfg"))
os.stat_result(st_mode=33206, st_ino=10977524091732464, st_dev=3469357810, st_nlink=1, st_uid=0, st_gid=0, st_size=34, st_atime=1505129122, st_mtime=1512922391, st_ctime=1505129122)
使用time模块,可以输出格式化的文件创建修改时间。
import os,time
modifiedTime = time.localtime(os.stat("D:/mm.cfg").st_mtime)
createdTime = time.localtime(os.stat("D:/mm.cfg").st_ctime)
mTime = time.strftime('%Y-%m-%d %H:%M:%S', modifiedTime)
cTime = time.strftime('%Y-%m-%d %H:%M:%S', createdTime)
print("modifiedTime " + mTime)
print("createdTime " + cTime)
返回结果与系统中的信息一致。
modifiedTime 2017-12-11 00:13:11
createdTime 2017-09-11 19:25:22
Python之日期与时间处理模块(date和datetime)
Python os.stat() 方法