【Python】datetime、time类库常见日期计算

在处理时间序列时,经常会有日期计算,现整理常见日期计算的方法,防止遗忘。

  1. 今天 today = datetime.date.today(),
  2. 昨天  yesterday = today - datetime.timedelta(days=1)
  3. 上个月 last_month = today.month - 1 if today.month - 1 else 12
  4. 当前时间戳 time_stamp = time.time()
  5. 时间戳转datetime datetime.datetime.fromtimestamp(time_stamp)
  6. datetime转时间戳 int(time.mktime(today.timetuple()))
  7. datetime转字符串 today_str = today.strftime("%Y-%m-%d")
  8. 字符串转datetime today = datetime.datetime.strptime(today_str, "%Y-%m-%d")
  9. 补时差 today + datetime.timedelta(hours=8)
  10. 格式化时间戳为本地的时间 time.localtime(time_stamp)

举例:

将字符串格式转成日期格式,并按照一定格式输出:

# coding:utf-8
import datetime
import time

today = '2019-12-3'

# strptime将字符串格式转成日期格式
date = datetime.datetime.strptime(today, '%Y-%m-%d')
print(date)

计算前一天的日期:

# 计算前一天,这里的计算结果是datetime.datetime格式
yesterday = date - datetime.timedelta(days=1)
print(yesterday)

将日期格式转成字符串:

# strftime将日期格式转成字符串格式
yesterday = yesterday.strftime('%Y-%m-%d')
print(yesterday)

计算后一天:

# 计算后一天
tomorrow = date + datetime.timedelta(days=1)
print(tomorrow)

# strftime将日期格式转成字符串格式
tomorrow = tomorrow.strftime('%m-%d')
print(tomorrow)

获取今天日期:

# 今天
today = datetime.date.today()
print(today)

计算两个时间的时差:

start = datetime.datetime.now()
print(start)
time.sleep(5)
end = datetime.datetime.now()
 
print((end - start).seconds)  # 相差秒数
print((end - start).days)  # 相差天数

获取上个月月份:

# 上个月
last_month = today.month - 1 if today.month - 1 else 12
print(last_month)

获取当前时间戳,且输出格式为“YYYY年MM月DD日”:

# 当前时间戳
time_stamp = time.time()
print(time_stamp)
print(type(time_stamp))
cc = time.localtime(time_stamp)
print(cc)
print(str(cc.tm_year)+'年'+str(cc.tm_mon)+'月'+str(cc.tm_mday)+'日')

float类型的时间戳转日期型:

# 时间戳转datetime
date_time = datetime.datetime.fromtimestamp(time_stamp)
print(date_time)
print(type(date_time))

日期型转float类型时间戳:

# datetime转时间戳
int(time.mktime(today.timetuple()))

补时差:

# 补时差
date = date_time + datetime.timedelta(hours=10)
print(date)
print(type(date))

经常遇到的场景大概是这几个,后续再遇到继续补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值