python 时间计算:time与datetime

获取当前时间

使用 python 自带的 datetimetime 可以实现

import datetime
import time

# 获取时间戳
t = time.time()
# 把时间戳转成元组时间
tup_time = time.localtime(t)
# 格式化输出时间
print(time.strftime("%Y-%m-%d %H:%M:%S", tup_time))

# 获取datetime
d = datetime.datetime.now()
# 格式化输出
print(d.strftime("%Y-%m-%d %H:%M:%S"))

得到结果如下

2021-03-11 11:50:09
2021-03-11 11:50:09

计算昨天和明天,以及第N天

# 使用datetime

# 一天有86400秒
day_second = 86400

# 昨日的时间戳
yesterday_target = t - day_second
# 把计算好的秒转成元组时间
yesterday_target_time = time.localtime(yesterday_target)
# 在进行格式化
print("昨天时间", time.strftime("%Y-%m-%d %H:%M:%S", yesterday_target_time))

# 明天的时间戳
tomorrow_target = t + day_second
# 把计算好的秒转成元组时间
tomorrow_target_time = time.localtime(tomorrow_target)
# 在进行格式化
print("明天时间", time.strftime("%Y-%m-%d %H:%M:%S", tomorrow_target_time))

# 第n天的时间

n = 5

n_target = t + day_second * 5
n_target_time = time.localtime(n_target)
print(f'第{n}天', time.strftime("%Y-%m-%d %H:%M:%S", n_target_time))

# 使用datetime

yesterday = d + datetime.timedelta(days=-1, seconds=0, minutes=0)
print("昨天时间", yesterday.strftime("%Y-%m-%d %H:%M:%S"))

tomorrow = d + datetime.timedelta(days=1, seconds=0, minutes=0)
print("明天时间", tomorrow.strftime("%Y-%m-%d %H:%M:%S"))

n_date = d + datetime.timedelta(days=n, seconds=0, minutes=0)

print(f'第{n}天', n_date.strftime("%Y-%m-%d %H:%M:%S"))

得到以下结果

昨天时间 2021-03-10 12:13:48
明天时间 2021-03-12 12:13:48
第5天 2021-03-16 12:13:48
昨天时间 2021-03-10 12:13:48
明天时间 2021-03-12 12:13:48
第5天 2021-03-16 12:13:48

获取今日开始和结束的时间戳

today = datetime.datetime.today()

today_start = datetime.datetime(year=today.year, month=today.month, day=today.day)
print("今日开始时间戳", today_start.timestamp())

today_end = datetime.datetime(year=today.year, month=today.month, day=today.day, hour=23, minute=59, second=59)
print("今日结束时间戳", today_end.timestamp())

获取本周开始和结束的时间戳

today = datetime.datetime.today()

week_start = datetime.datetime(year=today.year, month=today.month, day=today.day - today.weekday(), hour=23,
                               minute=59, second=59)
print("本周开始时间戳", week_start.timestamp())

week_end = datetime.datetime(year=today.year, month=today.month, day=today.day + 6 - today.weekday(), hour=23,
                             minute=59, second=59)
print("本周结束时间戳", week_end.timestamp())

获取本月开始和结束的时间戳

import calendar

today = datetime.datetime.today()

# 获取某年某月的范围
# month_range 第一个值是 第一天是星期几,第二个值是本月天数
month_range = calendar.monthrange(today.year, today.month)

month_start = datetime.datetime(year=today.year, month=today.month, day=1)
print("本月开始时间戳", month_start.timestamp())

month_end = datetime.datetime(year=today.year, month=today.month, day=month_range[1])
print("本月结束时间戳", month_end.timestamp())
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值