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()表示一个时间的长度,通常用作求两个日期或者时间的差值。