Python中,通常有这几种方式来表示时间:
1.时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。
我们运行“type(time.time())”,返回的是float类型。
2.格式化的时间字符串(Format String)
3.结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,
一年中第几周,一年中第几天,夏令时)
时间戳 浮点数形式
>>> import time >>> time.time() 1513683626.272084
python是1970年诞生 这个时间戳是python1970年诞生日 到现在 以小数显示时间
>>> t = time.time()
>>> t/3600/24/365
47.998597763326607
>>> 2017-1970
structime 是元祖格式
返回本地时间 struct time 格式
struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,
一年中第几周,一年中第几天,夏令时)
print(time.localtime()) time.struct_time(tm_year=2017, tm_mon=12, tm_mday=19, tm_hour=11, tm_min=49, tm_sec=14, tm_wday=1, tm_yday=353, tm_isdst=0)
tm_wday 星期一到星期五 从0开始数起
属性 值 tm_year(年) 比如2017 tm_mon(月) 1 - 12 tm_mday(日) 1 - 31 tm_hour(时) 0 - 23 tm_min(分) 0 - 59 tm_sec(秒) 0 - 61 tm_wday(weekday) 0 - 6(0表示周日) tm_yday(一年中的第几天) 1 - 366 tm_isdst(是否是夏令时) 默认为-1
time.sleep() 秒为单位 程序静止多少秒
time.gmtime() UTC时区的struct_time
>>> time.gmtime()
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=19, tm_hour=17, tm_min=26, tm_sec=49, tm_wday=1, tm_yday=353, tm_isdst=0)
取里面元组的值
>>> time.localtime() time.struct_time(tm_year=2017, tm_mon=12, tm_mday=20, tm_hour=1, tm_min=22, tm_sec=16, tm_wday=2, tm_yday=354, tm_isdst=0) >>> t = time.localtime() >>> >>> >>> t.tm_year 2017 >>> t.tm_mon 12 >>> t.tm_mday 20 >>> t.tm_hour 1 >>> t.tm_min 33
打印1970年的哪一天
>>> t = time.localtime(1232131) >>> t time.struct_time(tm_year=1970, tm_mon=1, tm_mday=15, tm_hour=14, tm_min=15, tm_sec=31, tm_wday=3, tm_yday=15, tm_isdst=0) >>> print("this is 1970 day:%d" %t.tm_yday) this is 1970 day:15
time.mktime() struct time元组格式 转成 时间戳格式
>>> t time.struct_time(tm_year=1970, tm_mon=1, tm_mday=15, tm_hour=14, tm_min=15, tm_sec=31, tm_wday=3, tm_yday=15, tm_isdst=0) >>> >>> time.mktime(t) 1232131.0
time.strftime(format[, tuple]) -> string 字符串格式,加上struct time元组
时间戳转换成格式化的时间字符串
>>> time.strftime("%Y-%m-%d %H:%M",t) ‘1970-01-26 00:15‘
python中时间日期格式化符号:
%a 星期的简写。如 星期三为Web %A 星期的全写。如 星期三为Wednesday %b 月份的简写。如4月份为Apr %B月份的全写。如4月份为April %c: 日期时间的字符串表示。(如: 04/07/10 10:43:39) %d: 日在这个月中的天数(是这个月的第几天) %f: 微秒(范围[0,999999]) %H: 小时(24小时制,[0, 23]) %I: 小时(12小时制,[0, 11]) %j: 日在年中的天数 [001,366](是当年的第几天) %m: 月份([01,12]) %M: 分钟([00,59]) %p: AM或者PM %S: 秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~) %U: 周在当年的周数当年的第几周),星期天作为周的第一天 %w: 今天在这周的天数,范围为[0, 6],6表示星期天 %W: 周在当年的周数(是当年的第几周),星期一作为周的第一天 %x: 日期字符串(如:04/07/10) %X: 时间字符串(如:10:43:39) %y: 2个数字表示的年份 %Y: 4个数字表示的年份 %z: 与utc时间的间隔 (如果是本地时间,返回空字符串) %Z: 时区名称(如果是本地时间,返回空字符串) %%: %% => %
time.strptime(string, format) 格式化的时间字符串转换成时间戳
参数是 格式化的时间字符串,格式
>>> t = time.localtime() >>> t time.struct_time(tm_year=2017, tm_mon=12, tm_mday=20, tm_hour=11, tm_min=58, tm_ sec=32, tm_wday=2, tm_yday=354, tm_isdst=0) >>> time.strftime("%Y-%m-%d %H:%M",t) ‘2017-12-20 11:58‘ >>> time.strptime("2017-12-20 11:58","%Y-%m-%d %H:%M") time.struct_time(tm_year=2017, tm_mon=12, tm_mday=20, tm_hour=11, tm_min=58, tm_ sec=0, tm_wday=2, tm_yday=354, tm_isdst=-1) >>>
time.asctime()
asctime([tuple]) -> string
如果不传递元组参数 默认打印本地时间
>>> t = time.localtime(2313) >>> time.asctime(t) ‘Thu Jan 1 08:38:33 1970‘
>>> time.asctime() ‘Wed Dec 20 16:55:27 2017‘
time.ctime()
ctime(时间戳) -> string
如果不传递时间戳参数 默认打印本地时间
>>> t = time.time() >>> t 1513760447.9049652 >>> t = time.time() >>> time.ctime(t) ‘Wed Dec 20 17:00:58 2017‘
时间格式转换图: