相关文章推荐
酒量大的芹菜  ·  凝聚态物理-厦大物理科学与技术学院·  11 月前    · 
内向的炒面  ·  合肥师范学院2024年硕士研究生招生简章-研 ...·  1 年前    · 
含蓄的消防车  ·  《網路社會學通訊期刊》第49期,2005年1 ...·  1 年前    · 
成熟的伏特加  ·  《想见你》是怎么从9.2作到6.6的?_手机新浪网·  2 年前    · 
傲视众生的警车  ·  我校两名教师获哈佛燕京学社访问学者资格-山大 ...·  2 年前    · 
Code  ›  Python time和datetime用法小结开发者社区
python localtime time函数 strftime
https://cloud.tencent.com/developer/article/1979502
成熟的匕首
2 年前
作者头像
Steve Wang
0 篇文章

Python time和datetime用法小结

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 从流域到海域 > Python time和datetime用法小结

Python time和datetime用法小结

作者头像
Steve Wang
发布 于 2022-04-13 14:17:24
415 0
发布 于 2022-04-13 14:17:24
举报

Python内置两个关于时间处理的包, time 和 datetime 。本文用于记录笔者在使用这两个包时的一些心得,将会不间断更新。

从命名上讲, time 包提供处理时间相关的函数, datetime 包提供处理时间日期相关的函数。

time包

time.sleep()

time.sleep() 是 time 包中使用最频繁的函数之一,它接收一个参数,用于以单位秒指定睡眠时间,任何调用该方法的线程都会阻塞至计时完成。

time.sleep(1)  # 当前线程将睡眠1s

time.time()

计时绕不开一个固定时间,1970年,为什么?因为1970年是距今最早的的1月1日是星期一的日期,计算当前时间是星期几时最为方便,是一个合适的初始时间锚定值。

time.time() 则是 time 包中使用最频繁的又一个函数,它返回一个秒级别的时间戳(本质上是从1970至今经过的秒数,float类型,小数点后范围不定)。

在这里插入图片描述
在这里插入图片描述

时间戳不会重复,也包含了时间信息,因此常用作任务的task_id(也可以使用uuid)。

在对时间不那么精确的条件下,经常去掉小数部分:

import time
print(round(time.time()))  # 1641712467

也可以将时间戳转换为日期格式:

import time
print(time.localtime(time.time()))
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())))
在这里插入图片描述

time.mktime 将struct_time格式转回成时间戳(存在精度损失):

import time
now = time.localtime(time.time())
print(now)
print(time.mktime(now))
在这里插入图片描述

时间格式指定

time.strftime("%Y-%m-%d %H:%M:%S") 里面的格式控制字符有哪些呢?参见下表:

格式

说明

%a

显示简化星期名称

%A

显示完整星期名称

%b

显示简化月份名称

%B

显示完整月份名称

%c

本地相应的日期和时间表示

%d

显示当月第几天

%H

按24小时制显示小时

%I

按12小时制显示小时

%j

显示当年第几天

%m

显示月份

%M

显示分钟数)

%p

本地am或者pm的相应符

%S

显示秒数)

%U

一年中的星期数

%w

显示在星期中的第几天,默认从0开始表示周一

%W

和%U基本相同

%x

本地相应日期

%X

本地相应时间

%y

去掉世纪的年份(00 - 99)

%Y

完整的年份

%Z

时区的名字(如果不存在为空字符)

%%

‘%’字符

同样适用于下面的 datetime.datetime.now.strftime()

datetime包

datetime.datetime.now()

datetime.datetime.now() 是datetime包中使用最为频繁的一个函数,它用于获取当前的日期和时间:

import datetime
now = datetime.datetime.now()
print(now)
print(type(now))  # 注意是datetime对象类型
在这里插入图片描述

底层也是依赖 time.time() 实现的。

在这里插入图片描述

可以转换成整洁的字符格式日期:

import datetime
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(now)
在这里插入图片描述

使用示例:计算当前时间及24小时之前的时间

假设我们要统计一天之内的数据(比如测算服务器一天之内的qps),那就需要从当前时间倒推24h。

使用time包实现:

import time
start_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time() - 86400))
end_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
print(start_time)
print(end_time)
在这里插入图片描述

使用datetime包实现:

import datetime
end_time = datetime.datetime.now()
start_time = end_time - datetime.timedelta(days=1)
 
推荐文章
酒量大的芹菜  ·  凝聚态物理-厦大物理科学与技术学院
11 月前
内向的炒面  ·  合肥师范学院2024年硕士研究生招生简章-研究生处(党委研究生工作部)
1 年前
含蓄的消防车  ·  《網路社會學通訊期刊》第49期,2005年10月15日
1 年前
成熟的伏特加  ·  《想见你》是怎么从9.2作到6.6的?_手机新浪网
2 年前
傲视众生的警车  ·  我校两名教师获哈佛燕京学社访问学者资格-山大国际事务部
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号