Python常用的日期和时间方法
获取当前时间戳
import time
t = time.time()
print(t) # 获取当前的时间戳
print(int(t)) # 获取整数时间戳
print(int(round(time.time() * 1000))) # 获取毫秒级的时间戳
结果如下:
1621494071.3625572
1621494071
1621494071363
格式化时间
import time
n1 = time.strftime('%Y-%m-%d %H:%M:%S')
print('当前时间格式化:{}'.format(n1))
n2 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1621487655))
print('指定时间格式化:{}'.format(n2))
结果如下:
当前时间格式化:2021-05-20 15:12:52
指定时间格式化:2021-05-20 13:14:15
常用的格式化符号如下
符号 | 含义 | 范围 |
---|---|---|
%y | 两位数的年份表示 | 00 ~ 99 |
%Y | 四位数的年份表示 | 000 ~ 999 |
%m | 月份 | 01 ~ 12 |
%d | 月内中的一天 | 0 ~ 31 |
%H | 24小时制的小时数 | 0 ~ 23 |
%I | 12小时制的小时数 | 01 ~ 12 |
%M | 分钟数 | 00 ~ 59 |
%S | 秒数 | 00 ~ 59 |
格式化时间转时间戳
import time
s = '2021-05-20 13:14:00'
t = time.mktime(time.strptime(s, "%Y-%m-%d %H:%M:%S"))
print(t)
结果如下:
1621487640.0
获取今天日期
import time
import datetime
# 获取当前时间,然后格式化为指定格式
today1 = time.strftime('%Y-%m-%d')
print(today1)
# 获取今天的日期
today2 = datetime.date.today()
print(today2)
结果如下:
2021-05-20
2021-05-20
获取与datetime.now()相关的信息
import datetime
# 当前时间
print(datetime.datetime.now())
# 当前时间(格式化)
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
# 当前日期
print(datetime.datetime.now().date())
# 年
print(datetime.datetime.now().year)
# 月
print(datetime.datetime.now().month)
# 日
print(datetime.datetime.now().day)
结果如下:
2021-05-20 17:44:35.406220
2021-05-20 17:44:35
2021-05-20
2021
5
20
求两个日期的天数差
import datetime
a = datetime.date(2021, 5, 20)
b = datetime.date(2021, 5, 10)
c = a - b
print(c.days)
结果如下:
10
获取当前时间前后的时间
import datetime
# 1小时前
a = datetime.datetime.now() - datetime.timedelta(hours=1)
print('1小时前:', a.strftime('%Y-%m-%d %H:%M:%S'))
# 10分钟之后
b = datetime.datetime.now() + datetime.timedelta(minutes=10)
print('10分钟后:', b.strftime('%Y-%m-%d %H:%M:%S'))
# 一周前
c = datetime.datetime.now() - datetime.timedelta(days=7)
print('一周前:', c.strftime('%Y-%m-%d %H:%M:%S'))
结果如下
1小时前: 2021-05-20 16:34:09
10分钟后: 2021-05-20 17:44:09
一周前: 2021-05-13 17:34:09
注:datetime.timedelta()表示一个时间的长度,通常用作求两个日期或者时间的差值。