加载库
import datetime
from datetime import timedelta
一、datetime 基础
now = datetime.datetime.now()
now_time = now.time()
now_date = now.date()
year = now.year
quarter = (now.month-1)//3 + 1
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
microsecond = now.microsecond
week = now.weekday()
isoweek = now.isoweekday()
isocalendar = now.isocalendar()
timestr = now.isoformat()
str_ = now.strftime("%Y-%m-%d %H:%M:%S")
now = datetime.datetime.strptime(str_,"%Y-%m-%d %H:%M:%S")
print(" 当前时间(datetime格式):",now)
print(" datetime 转 time:",now_time)
print(" datetime 转 date:",now_date)
print(" 年:",year)
print(" 季:",quarter)
print(" 月:",month)
print(" 日:",day)
print(" 时:",hour)
print(" 分:",minute)
print(" 秒:",second)
print(" 毫秒:",microsecond)
print(" 周(0表示周一):",week)
print(" 周(1表示周一):",isoweek)
print(" 年份, 第几周, 周几:",isocalendar)
print(" 日期字符串:",timestr)
二、常用日期计算 (timedelta)
now + timedelta(weeks = 3, days = 3, hours = 3, seconds = 30)
last_day = now + timedelta(days=-1)
next_day = now + timedelta(days=1)
this_week_start = now + timedelta(days=-now.weekday())
last_week_start = now + timedelta(days=-now.weekday()-7)
next_week_start = now + timedelta(days=-now.weekday()+7)
this_week_end = now + timedelta(days=6-now.weekday())
last_week_end = now + timedelta(days=-now.weekday()-1)
next_week_end = now + timedelta(days=now.weekday()+6)
this_month_start = datetime.datetime(now.year, now.month, 1)
last_month_start = datetime.datetime((this_month_start+timedelta(days=-1)).year, \
(this_month_start+timedelta(days=-1)).month, 1)
next_month_start = datetime.datetime(now.year, now.month+1, 1)
this_month_end = datetime.datetime(now.year, now.month + 1, 1) - timedelta(days=1)
last_month_end = datetime.datetime(now.year, now.month, 1) - timedelta(days=1)
next_month_end = datetime.datetime(now.year, now.month + 2, 1) - timedelta(days=1)
month = (now.month - 1) - (now.month - 1) % 3 + 1
this_quarter_start = datetime.datetime(now.year, month, 1)
this_quarter_end = datetime.datetime(now.year, month + 3, 1) - timedelta(days=1)
last_quarter_end = this_quarter_start - timedelta(days=1)
last_quarter_start = datetime.datetime(last_quarter_end.year, last_quarter_end.month - 2, 1)
next_quarter_start = datetime.datetime(now.year, month + 3, 1)
next_quarter_end = datetime.datetime(now.year, month + 6, 1) - timedelta(days=1)
this_year_start = datetime.datetime(now.year, 1, 1)
last_year_start = datetime.datetime((this_year_start+timedelta(days=-1)).year,1, 1)
next_year_start = datetime.datetime(now.year + 1, 1, 1)
this_year_end = datetime.datetime(now.year + 1, 1, 1) - timedelta(days=1)
last_year_end = datetime.datetime(now.year, 1, 1) - timedelta(days=1)
next_year_end = datetime.datetime(now.year + 2, 1, 1) - timedelta(days=1)
三、计算两个日期的时间间隔
d1 = datetime.datetime.now()
d2 = now + timedelta(weeks = 8, days = 3, hours = 3, seconds = 30)
d_seconds = (d2 - d1).seconds
d_minutes = (d2 - d1).seconds / 60
d_hours = (d2 - d1).seconds / 3600
d_days = (d2 - d1).days
d_weeks = (d2 - d1).days / 7
d_year = d2.year - d1.year
d_month = d_year*12 + d2.month - d1.month
d_quarter = d_year*4 + (d2.month-1)//3 - (d1.month-1)//3
print("开始日期:",d1)
print("结束日期:",d2)
print("相差年数:",d_year)
print("相差季度:",d_quarter)
print("相差月数:",d_month)
print("相差周数:",d_weeks)
print("相差天数:",d_days)
print("相差小时:",d_hours)
print("相差分钟:",d_minutes)
print("相差秒数:",d_seconds)
- 参考:https://blog.csdn.net/gty931008/article/details/80254806