Python常用日期获取

学会使用datetime和relativedelta两个模块,对于我们处理日期的问题非常方便,尤其是relativedelta,功能十分强大

附上代码,供参考学习:

import datetime
from dateutil.relativedelta import relativedelta
text="20200410"
myday = datetime.datetime.strptime(text,"%Y%m%d")
print(myday)
today = datetime.date.today()
#当前季度
quarter = (myday.month-1) // 3 + 1
print('{}Q{}'.format(myday.year, quarter))
# 本年月
print(datetime.datetime.strftime(myday, "%Y%m"))
# 上个月
last_month = myday + datetime.timedelta(days=-myday.day)
print(datetime.datetime.strftime(last_month, "%Y%m"))
#上n个月
last_2_month=myday+ relativedelta(months=-2)
print(datetime.datetime.strftime(last_2_month,"%Y%m"))
#当年1月
print(str(myday.year) + "01")
#今天
print(myday.day)
print(myday.date())
#昨天
yesterday = myday + datetime.timedelta(days=-1)
print(yesterday.date())
#明天
tomorrow = myday + datetime.timedelta(days=1)
print(tomorrow.date())
#本周第一天
# week_first_day=today - datetime.timedelta(days=today.weekday())
# print(week_first_day.isoformat())
week_first_day=myday - datetime.timedelta(days=myday.weekday())
print(week_first_day.date())
#本周最后一天
week_last_day=myday + datetime.timedelta(days=6-myday.weekday())
print(week_last_day.date())
#本月第一天
month_start_day = myday - datetime.timedelta(days=myday.day-1)
print(month_start_day.date())
#本月最后一天
# 必须先置为首日,直接用relativedelta(months=1,days=-today.day+1)会有错误结果
month_end_day = (myday + datetime.timedelta(days=-myday.day+1)) + relativedelta(months=1,days=-1)
print(month_end_day.date())
# 本季度第一天
quarter_start_day = datetime.date(myday.year,myday.month - (myday.month - 1) % 3, 1)
print(quarter_start_day.isoformat())
#本季度最后一天
quarter_end_day = datetime.date(myday.year,myday.month - (myday.month - 1) % 3 +2, 1) + relativedelta(months=1,days=-1)
print(quarter_end_day.isoformat())
#本年第一天
year_start_day = datetime.date(myday.year, 1, 1)
print(year_start_day.isoformat())
#本年最后一天
year_end_day = datetime.date(myday.year+1, 1, 1) - datetime.timedelta(days=1)
print(year_end_day.isoformat())

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值