Python基础(19)之time模块

Python基础(19)之time模块

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

表示时间的三种方式

时间戳(timestamp)

通常来说,时间戳表示的是从 1970-1-1 00:00:00 开始按秒计算的偏移量。

import time
print(time.time()) # 1565977441.6759748
print(type(time.time()))  # <class 'float'>

格式化的时间字符串(Format String)

如:1999-12-06

python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

元组(struct_time)

struct_time 元组共有9个元素共九个元素:(年、月、日、时、分、秒、一年中第几周、一年中第几天等)。

索引(Index)属性(Attribute)值(Values)
0tm_year(年)比如2011
1tm_mon(月)1 - 12
2tm_mday(日)1 - 31
3tm_hour(时)0 - 23
4tm_min(分)0 - 59
5tm_sec(秒)0 - 60
6tm_wday(weekday)0 - 6(0表示周一)
7tm_yday(一年中的第几天)1 - 366
8tm_isdst(是否是夏令时)默认为0

使用

获取当前时间戳

import time
print(time.time())  # 1535813663.732

获取当前时间格式化后的字符串

import time
print(time.strftime("%Y-%m-%d %X"))  # 2018-09-01 22:55:30
print(time.strftime("%Y-%m-%d %H-%M-%S"))  # 2018-09-01 22-55-30

获取当前时间的结构化时间

import time
print(time.localtime())  # time.struct_time(tm_year=2018, tm_mon=9, tm_mday=1, tm_hour=22, tm_min=56, tm_sec=31, tm_wday=5, tm_yday=244, tm_isdst=0)

时间戳和结构化时间的转换

import time

# 时间戳-->结构化时间 localtime()
print(time.localtime(
    1600000000))  # time.struct_time(tm_year=2020, tm_mon=9, tm_mday=13, tm_hour=20, tm_min=26, tm_sec=40, tm_wday=6, tm_yday=257, tm_isdst=0)


# 结构化时间-->时间戳 mktime()
print(time.mktime(time.localtime(1600000000)))  # 1600000000.0

时间字符串和结构化时间的转换

import time

# 结构化时间-->字符串时间
# time.strftime("格式定义","结构化时间")  结构化时间参数若不传,则显示当前时间
print(time.strftime("%Y-%m-%d %X"))  # 2018-09-01 23:06:43
print(time.strftime("%Y-%m-%d", time.localtime(1600000000)))  # 2020-09-13

# 字符串时间-->结构化时间
# time.strptime(时间字符串,字符串对应格式)
print(time.strptime("2018-09-01 23:06:43","%Y-%m-%d %X"))  
# time.struct_time(tm_year=2018, tm_mon=9, tm_mday=1, tm_hour=23, tm_min=6, tm_sec=43, tm_wday=5, tm_yday=244, tm_isdst=-1)
print(time.strptime("07/24/2017","%m/%d/%Y"))  
# time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=205, tm_isdst=-1)

获取时间差

import time

last_time=time.mktime(time.strptime('1997-05-12 08:30:00','%Y-%m-%d %H:%M:%S'))
time_now=time.mktime(time.strptime('2018-09-01 11:00:00','%Y-%m-%d %H:%M:%S'))
dif_time=time_now-last_time
struct_time = time.localtime(dif_time)
print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(struct_time.tm_year-1970,struct_time.tm_mon-1,
                                       struct_time.tm_mday-1,struct_time.tm_hour,
                                       struct_time.tm_min,struct_time.tm_sec))

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/python-base-19.html

Buy me a cup of coffee ☕.