表示时间的三种方式
时间戳(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) |
---|---|---|
0 | tm_year(年) | 比如2011 |
1 | tm_mon(月) | 1 - 12 |
2 | tm_mday(日) | 1 - 31 |
3 | tm_hour(时) | 0 - 23 |
4 | tm_min(分) | 0 - 59 |
5 | tm_sec(秒) | 0 - 60 |
6 | tm_wday(weekday) | 0 - 6(0表示周一) |
7 | tm_yday(一年中的第几天) | 1 - 366 |
8 | tm_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))
评论区