#!/usr/bin/python3
- - coding: utf-8 - -
“”"
通過datetime和dateutil進行常用日期的獲取
如:
今年,去年,明年
當前季度
本月,上月,去年同期,今年一月
今天,昨天,明天,
本周、本月、本季度、本年第一天,
本周、本月、本季度、本年最后一天
“”"
import datetime
獲取常用特定日期(如去年/季度/當月/本周/首日/)
=======================================
關于年(今年,去年,明年)
=======================================
今年
today = datetime.date.today() # 都是基于today, 此時為’2019-02-22’,下同
today.year # out: 2019
去年
today = datetime.date.today()
today.year-1 # out : 2018
明年
today = datetime.date.today()
today.year+1 # out : 2020
=======================================
關于季度(當前季度)
=======================================
today = datetime.date.today()
quarter = (today.month-1) // 3 + 1
‘{}Q{}’.format(today.year, quarter) # out: ‘2019Q1’
=======================================
關于月(本月,上月,當年1月,去年同月)
=======================================
本月(月份)
today = datetime.date.today()
today.month # out: 2
本月(年月)
today = datetime.date.today()
datetime.datetime.strftime(today, “%Y-%m”) # out: ‘2019-02’
上月
today = datetime.date.today()
last_month = today + datetime.timedelta(days=-today.day)
last_month.month # 月份,out: 1
datetime.datetime.strftime(last_month,"%Y-%m") # out: ‘2019-01’
上N個月
from dateutil.relativedelta import relativedelta # 需要引入新的包
today = datetime.date.today()
last_2_month = today + relativedelta(months=-2) # 上兩個月,上N個月參數為(months=-N)
datetime.datetime.strftime(last_2_month, “%Y-%m”) # out: ‘2018-12’
當年1月
today = datetime.date.today()
str(today.year) +’-01’ # out: ‘2019-01’
=======================================
關于天
=======================================
今天(天數)
today = datetime.date.today()
today.day
今天(日期)
today.isoformat() # out: ‘2019-02-22’
昨天
today = datetime.date.today()
yesterday = today + datetime.timedelta(days=-1)
yesterday.isoformat() # out: ‘2019-02-21’
明天
today = datetime.date.today()
yesterday = today + datetime.timedelta(days=1)
yesterday.isoformat() # out: ‘2019-02-23’
本周第一天
today = datetime.date.today()
week_start_day = today - datetime.timedelta(days=today.weekday())
week_start_day.isoformat() # ‘2019-02-18’,周一
本周最后一天
today = datetime.date.today()
week_end_day = today + datetime.timedelta(days=6-today.weekday())
week_end_day.isoformat() # ‘2019-02-24’,周天
本月第一天
today = datetime.date.today()
month_start_day = today - datetime.timedelta(days=today.day-1)
month_start_day.isoformat() # ‘2019-02-01’,當月第一天
本月最后一天
from dateutil.relativedelta import relativedelta # 引入新的包
today = datetime.date.today()
必須先置為首日,直接用relativedelta(months=1,days=-today.day+1)會有錯誤結果
month_end_day = (today + datetime.timedelta(days=-today.day+1)) + relativedelta(months=1,days=-1)
month_end_day.isoformat() # ‘2019-02-28’,當月最后一天
本季度第一天
today = datetime.date.today()
quarter_start_day = datetime.date(today.year,today.month - (today.month - 1) % 3, 1)
quarter_start_day.isoformat() # ‘2019-01-01’ ,本季度第一天
本季度最后一天
from dateutil.relativedelta import relativedelta # 引入新的包
today = datetime.date.today()
quarter_end_day = datetime.date(today.year,today.month - (today.month - 1) % 3 +2, 1) + relativedelta(months=1,days=-1)
quarter_end_day.isoformat() # ‘2019-03-31’ ,本季度最后一天
本年第一天
today = datetime.date.today()
year_start_day = datetime.date(today.year, 1, 1)
year_start_day.isoformat() # ‘2019-01-01’ ,本年第一天
本年最后一天
today = datetime.date.today()
year_end_day = datetime.date(today.year+1, 1, 1) - datetime.timedelta(days=1)
year_end_day.isoformat() # ‘2019-12-31’ ,本年最后一天
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
