目录
1、计算当前时间
2、计算当前时间的前一天/后一天
3、计算当前时间的前一小时/后一小时
4、计算当前时间的前一分钟/后一分钟
5、计算当前时间的前一秒/后一秒
6、计算两个时间不同天数的时间差
7、获取所在当月的日期
8、获取所在当前月份
9、获取所在当前年份
10、获取当前时间的三天前的此时
11、获取当前时间三天n分n秒前的时间
12、获取当前时间的昨天/明天日期
13、获取当前时间的本周第一天和本周最后一天
14、获取当前时间的上周第一天和上周最后一天
15、获取当前时间的本月第一天和本月最后一天
16、获取上月第一天和最后一天
17、获取本季第一天和最后一天
18、获取上季第一天和最后一天
19、获取本年第一天和最后一天
20、获取去年第一天和最后一天
1、计算当前时间
import datetime
print(datetime.datetime.now())
# 2022-07-25 19:52:27.479555
# 格式化时间
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 19:52:27
2、计算当前时间的前一天/后一天
import datetime
# 当前时间
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 19:57:51
# 当前时间的后一天
print((datetime.datetime.now() + datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-26 19:57:51
# 当前时间的前一天
print((datetime.datetime.now() - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-24 19:57:51
3、计算当前时间的前一小时/后一小时
import datetime
# 当前时间
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 20:00:20
# 当前时间的前一小时
print((datetime.datetime.now() + datetime.timedelta(hours=1)).strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 21:00:20
# 当前时间的后一小时
print((datetime.datetime.now() - datetime.timedelta(hours=1)).strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 19:00:20
4、计算当前时间的前一分钟/后一分钟
import datetime
# 当前时间
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 20:03:41
# 当前时间的前一分钟
print((datetime.datetime.now() + datetime.timedelta(minutes=1)).strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 20:04:41
# 当前时间的后一分钟
print((datetime.datetime.now() - datetime.timedelta(minutes=1)).strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 20:02:41
5、计算当前时间的前一秒/后一秒
import datetime
# 当前时间
print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 20:03:41
# 当前时间的前一分钟
print((datetime.datetime.now() + datetime.timedelta(seconds=1)).strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 20:04:41
# 当前时间的后一分钟
print((datetime.datetime.now() - datetime.timedelta(seconds=1)).strftime("%Y-%m-%d %H:%M:%S"))
# 2022-07-25 20:02:41
6、计算两个时间不同天数的时间差
from datetime import datetime
time_1 = '2020-03-02 15:00:00'
time_2 = '2020-03-03 16:00:00'
time_1_struct = datetime.strptime(time_1, "%Y-%m-%d %H:%M:%S")
time_2_struct = datetime.strptime(time_2, "%Y-%m-%d %H:%M:%S")
print(time_1_struct)
print(time_2_struct)
total_seconds = (time_2_struct - time_1_struct).total_seconds()
print('两个时间(不同天)的相差的秒数:', int(total_seconds))
min_sub = total_seconds / 60
print('两个时间(不同天)的相差的分钟数:', int(min_sub))
min_days = (datetime(year=2010, month=3, day=1) - datetime(year=2010, month=2, day=1)).days
print('两个时间(不同天)的相差的天数:', min_days)
运行结果:
7、获取所在当月的日期
import datetime
present_date = datetime.datetime.now().day
print('本月当前日期:', present_date)
# 本月当前日期: 26
8、获取所在当前月份
import datetime
present_month = datetime.datetime.now().month
print('当前月份:', present_month)
# 当前月份: 7
9、获取所在当前年份
import datetime
now = datetime.datetime.now()
print('当前时间:', now)
# 当前时间: 2022-07-26 11:15:30.104951
present_year = datetime.datetime.now().year
print('当前年份:', present_year)
# 当前年份: 2022
10、获取当前时间的三天前的此时
import datetime
now = datetime.datetime.now()
print('当前时间:', now)
# 当前时间: 2022-07-26 11:19:22.759510
three_days_ago = now + datetime.timedelta(-3)
print('当前时间三天前此时:', three_days_ago)
# 当前时间三天前此时: 2022-07-23 11:19:22.759510
11、获取当前时间三天n分n秒前的时间
import datetime
now = datetime.datetime.now()
print('当前时间:', now)
# 当前时间: 2022-07-26 11:24:39.188088
three_days_ago = now + datetime.timedelta(-3)
print('当前时间三天前此时:', three_days_ago)
# 当前时间三天前此时: 2022-07-23 11:24:39.188088
that_time_1 = now + datetime.timedelta(days=-3, minutes=-12, seconds=0)
print('当前时间三天12分0秒前的时间:', that_time_1)
# 当前时间三天12分0秒前的时间: 2022-07-23 11:12:39.188088
that_time_2 = now + datetime.timedelta(days=-10, minutes=-20, seconds=-30)
print('当前时间10天20分30秒前的时间:', that_time_2)
# 当前时间10天20分30秒前的时间: 2022-07-16 11:04:09.188088
that_time_3 = now + datetime.timedelta(days=10, minutes=20, seconds=30)
print('当前时间的10天20分30秒后的时间:', that_time_3)
# 当前时间的10天20分30秒后的时间: 2022-08-05 11:45:09.188088
12、获取当前时间的昨天/明天日期
import datetime
from datetime import timedelta
# 获取今天日期:
# 返回datetime格式:
now = datetime.datetime.now()
print(now)
# 2022-07-26 11:58:01.523623
# 返回datetime格式:
now = datetime.datetime.now().date()
print(now)
# 2022-07-26
now = datetime.date.today()
print(now)
# 2022-07-26
# 获取昨天日期:
yesterday = now + timedelta(days=-1)
print(yesterday)
# 2022-07-25
yesterday = now - timedelta(days=1)
print(yesterday)
# 2022-07-25
# 获取明天日期
tomorrow = now + timedelta(days=1)
print(tomorrow)
# 2022-07-27
13、获取当前时间的本周第一天和本周最后一天
import datetime
from datetime import timedelta
# 获取今天日期:
# 返回datetime格式:
now = datetime.datetime.now()
print(now)
# 2022-07-26 11:58:01.523623
# 返回datetime格式:
now = datetime.datetime.now().date()
print(now)
# 2022-07-26
now = datetime.date.today()
print(now)
# 2022-07-26
# 获取本周第一天
this_week_start = now - timedelta(days=now.weekday())
print(this_week_start)
# 2022-07-25
# 获取本周最后一天
this_week_end = now + timedelta(days=6 - now.weekday())
print(this_week_end)
# 2022-07-31
14、获取当前时间的上周第一天和上周最后一天
import datetime
from datetime import timedelta
# 获取今天日期:
# 返回datetime格式:
now = datetime.datetime.now()
print(now)
# 2022-07-26 11:58:01.523623
# 返回datetime格式:
now = datetime.datetime.now().date()
print(now)
# 2022-07-26
now = datetime.date.today()
print(now)
# 2022-07-26
# 获取上周第一天
this_week_start = now - timedelta(days=now.weekday() + 7)
print(this_week_start)
# 2022-07-18
# 获取上周最后一天
this_week_end = now + timedelta(days=6 - now.weekday() + 1)
print(this_week_end)
# 2022-08-01
15、获取当前时间的本月第一天和本月最后一天
this_month_start = datetime.datetime(now.year, now.month, 1)
this_month_end = datetime.datetime(now.year, now.month, calendar.monthrange(now.year, now.month)[1])
16、获取上月第一天和最后一天
last_month_end = this_month_start - timedelta(days=1)
last_month_start = datetime.datetime(last_month_end.year, last_month_end.month, 1)
17、获取本季第一天和最后一天
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, calendar.monthrange(now.year, now.month)[1])
18、获取上季第一天和最后一天
ast_quarter_end = this_quarter_start - timedelta(days=1)
last_quarter_start = datetime.datetime(last_quarter_end.year, last_quarter_end.month - 2, 1)
19、获取本年第一天和最后一天
this_year_start = datetime.datetime(now.year, 1, 1)
this_year_end = datetime.datetime(now.year + 1, 1, 1) - timedelta(days=1)
20、获取去年第一天和最后一天
last_year_end = this_year_start - timedelta(days=1)
last_year_start = datetime.datetime(last_year_end.year, 1, 1)