python计算昨天及以昨天为起点上月月末的两个日期
不凡 Lv2

工作中经常对两个日期的数据进行比较,比如一张报表是用昨天的数据和上月月末的数据进行比较,用python如何获取两个日期呢?

python时间数据基础

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

from datetime import date,timedelta,datetime
import time

date.today() # 当天日期,年月日
date.today()+timedelta(1) # 明天
date(2011,10,1)
date.today().strftime('%Y-%m-%d') # 转换成字符串
date.today().year # 年
date.today().month # 月
date.today().day # 日


datetime.now() # 现在时间,年月日时分秒
datetime.now()+timedelta(-1) # 昨天
datetime(2011,10,1)
datetime.now().strftime('%Y-%m-%d') # 转换成字符串
datetime.now().year # 年
datetime.now().month #月
datetime.now().day # 日
datetime.now().hour # 时
datetime.now().minute # 分
datetime.now().second # 秒

time.time() # 当前时间的时间戳,一般计算两个时间间隔多少秒

获取两个日期

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 获取日期: 昨天日期, 以及以昨天日期为起点上月末的日期
def riqi():
jt = date.today() # 今天
# jt = date(2022, 9, 1) # 测试用
# 开始时间
start = jt - timedelta(days=1) # 昨天
# 开始日期月初日期
start_month_first = date(start.year, start.month, 1)
# 开始日期上月末日期
last_month_end = start_month_first - timedelta(days=1)

st = start.strftime('%Y-%m-%d')
et = last_month_end.strftime('%Y-%m-%d')
return st, et

st, et = riqi()

riqi()

例:9月26日,则返回9月25日和8月31日两个日期

由 Hexo 驱动 & 主题 Keep
访客数 访问量