python中时间类型的相关操作

本文介绍了Python中时间与时间戳的相互转换,包括使用strptime()和mktime()函数进行时间到时间戳的转换,以及localtime()和strftime()函数将时间戳还原为可读时间。此外,还讲解了13位时间戳的概念,并展示了如何通过datetime.timedelta获取当前时间前后的时间间隔,如天、小时、分钟和秒。虽然Python的datetime.timedelta不直接支持月份间隔,但提到了dateutil.relativedelta、arrow.shift和pandas.DateOffset等方法作为替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 首先是时间与时间戳的转换

  • 将时间转换为时间戳

  • 重新格式化时间

  • 时间戳转换为时间

  • 获取当前时间及将其转换成时间戳(实际需求)

1.1 时间转换成时间戳

  • 利用strptime()函数可以将时间转换成时间数组

  • 利用mktime()函数将时间数组转换成时间戳

  • 注:只写年月日,不写时分秒默认时分秒为0

1.2 时间戳转换为时间

  • 利用localtime()函数将时间戳转化成localtime的格式

  • 利用strftime()函数重新格式化时间图片

2 关于13位时间戳的转化

  • python常见的时间戳位数是10位,java常见13位的时间戳图片

3 重新格式化时间

  • 利用strptime()函数将时间转换成时间数组

  • 利用strftime()函数重新格式化时间

4 按指定格式获取当前时间

  • 利用time()获取当前时间,

  • 再利用localtime()函数转换为localtime(本地)时间数组,

  • 最后利用strftime()函数重新格式化时间。图片

5 取时间间隔

5.1 datetime.timedelta

  • 注:无法取月的间隔
import datetime

nowtime = datetime.datetime.now()
print("当前时间", nowtime) 

print('1天前', datetime.datetime.now() - datetime.timedelta(days=1)) # 默认格式2022-06-09 18:29:12.082389,规范格式见下方
print('1天后', datetime.datetime.now() + datetime.timedelta(days=1)) 

print('两周前', (datetime.datetime.now() - datetime.timedelta(weeks=2)).strftime("%Y-%m-%d %H:%M:%S")) 
print('两周后', (datetime.datetime.now() + datetime.timedelta(weeks=2)).strftime("%Y-%m-%d %H:%M:%S")) 

print('1天前', (datetime.datetime.now() - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S")) 
print('1天后', (datetime.datetime.now() + datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S"))

print('2小时前', (datetime.datetime.now() - datetime.timedelta(hours=2)).strftime("%Y-%m-%d %H:%M:%S")) 
print('2小时后', (datetime.datetime.now() + datetime.timedelta(hours=2)).strftime("%Y-%m-%d %H:%M:%S")) 

print('30分钟前', (datetime.datetime.now() - datetime.timedelta(minutes=30)).strftime("%Y-%m-%d %H:%M:%S")) 
print('30分钟后', (datetime.datetime.now() + datetime.timedelta(minutes=30)).strftime("%Y-%m-%d %H:%M:%S")) 

print('10秒前', (datetime.datetime.now() - datetime.timedelta(seconds=10)).strftime("%Y-%m-%d %H:%M:%S"))
print('10秒后', (datetime.datetime.now() + datetime.timedelta(seconds=10)).strftime("%Y-%m-%d %H:%M:%S"))

print('1月前', (datetime.datetime.now() - datetime.timedelta(months=1)).strftime("%Y-%m-%d %H:%M:%S"))
print('1月后', (datetime.datetime.now() + datetime.timedelta(months=1)).strftime("%Y-%m-%d %H:%M:%S"))

图片

5.2 以下为可以取月间隔的方法

  • dateutil 的relativedelta方法

  • arrow 的shift方法

  • pandas 的DateOffset方法

以上三个方法未亲测,有需要见参考资料中有示例自取

参考资料

时间与时间戳如何转换_niubiqigai的博客-优快云博客_时间戳怎么转

Python之time模块的时间戳、时间字符串格式化与转换(13位时间戳)_mighty13的博客-优快云博客_python time时间戳

时间与时间戳如何转换_niubiqigai的博客-优快云博客_时间戳怎么转

python 处理时间间隔 - 知乎 (zhihu.com)

python取当前时间前后一定间隔的时间点_Python学习者的技术博客_51CTO博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

矮人三等

秀儿,是你吗秀儿?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值