python datetime模块 得到 当前时间 前后一分钟一天 日期时间

目录

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) 

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值