python时间转换函数总结

更新时间:2023-07-17 08:33:57 阅读: 评论:0

python时间转换函数总结
引⾔
本篇主要想总结⼀些关于时间处理上的问题,以及我认为⽐较多star包的学习笔记。
时间戳与时间格式的互转
这个是最基本的⼀个功能,很多时候从数据库或者其它地⽅查询到的数据需要在代码上变为时间戳判断或者定时,所以两种转换分别为:时间戳转时间:
import  time
timeStamp = time.time()
timeArray = time.localtime(timeStamp)
print(timeArray,type(timeArray))
formatTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
print(formatTime)
时间转换为时间戳:
# 字符类型的时间
tss1 ='2021-02-12 15:52:02'
# 转为时间数组
炎热反义词timeArray = time.strptime(tss1,"%Y-%m-%d %H:%M:%S")
print(timeArray)
# timeArray可以调⽤tm_year等
_year)# 2021
# 转为时间戳
timeStamp =int(time.mktime(timeArray))
print(timeStamp)# 1613116322
关于datetime数据格式的函数,⼤致⽤的是以下四种:
⽤法解释
datetime.utcnow()UTC 时间
datetime.fromtimestamp(timestamp[, tz])由 Unix Timestamp 构建对象
datetime.strptime(date_string, format)给定时间格式解析字符串
其余的⼀些date使⽤⽅式可以参考 ⽂中的下图:
泰阳证券
根据上表的时间变换图,我们就能知道⼤概的⼀个数据流⾛向,然后这⾥还需要提⼀下关于st_atime,st_mtime还有st_ctime的区别,如果说我们要对⽂件或者⽂件夹做监控,那么⼀般只需要拿到st_ctime对其进⾏判断就可以,其它时间在我的测试结果⾥发现没有变化,获取⽂件夹与⽂件更改时间是通过os.walk与os.stat,walk是在做递归,⽽stat函数⽐较有意思,它的接收值与返回值分别为:
王字开头的成语参数:
path – 指定路径
返回值:
stat的结构体:
st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的⽤户ID。
st_gid: 所有者的组ID。
st_size: 普通⽂件以字节为单位的⼤⼩;包含等待某些特殊⽂件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后⼀次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的⽂档)。
陕西医保
上⾯的四个时间,从我测试来看,st_ctime还是会⽐较准的,我的实验场景是在⼀个⽂件夹⾥不断将图⽚合成视频。
python时间模块⽐较
幼儿园厕所图片
这⾥我们只⽐较两个git上star⽐较多的模块,arrow和dateutil,前者还需要pip安装,⽽后者好像在conda集成环境⾥已经是作为内置包,我不太清楚python直接安装是否也有,那么⾸先来介绍arrow:6的英语怎么写
arrow说明
arrow作为6.7k的star在⽕热程度上已经是榜⾸了,它的很多操作的简单化,以及各种时间处理上给⼈的感觉都要⽆⽐顺畅,依旧是上⾯的问题,时间戳与时间的互转,代码为:
当前时间转为时间戳:
nowTime = w()
print(nowTime)# 2021-02-12T17:17:39.125537+08:00
名词解释健康localTimeStamp = nowTime.timestamp
print(localTimeStamp)# 1613121628
时间戳转为当时时间:
localTime = (localTimeStamp)
print(localTime.format())
我们可以发现这要远远简单于上⾯的datetime结构,甚⾄还有⼀些其它的例⼦都简单于它:
获取当前时间 arrow.utcnow(), w()
>>> arrow.utcnow()
2021-02-12T09:29:12.168381+00:00
>>> w()
2021-02-12T17:29:34.668527+08:00
将时间戳转化为arrow对象 (timestamp)
好像⽬前版本的timestamp参数必须为int类型,我看其余很多教程能丢字符串,但我尝试下发现不⾏:
(1613121628))# 2021-02-12T09:20:28+00:00
# ('1613121628'))
(1613121628.16652))# 2021-02-12T09:20:28.166520+00:00
("1613121628.16652"))# arrow.parr.ParrError: Could not match input '1613121628.16652' to any of the following formats: YYYY-MM-D D, YYYY-M-DD, YYYY-M-D, YYYY/MM/DD, YYYY/M/DD, YYYY/M/D, YYYY.MM.DD, YYYY.M.DD, YYYY.M.D, YYYYMMDD, YYYY-DDDD, YYYYDDDD, YYY Y-MM, YYYY/MM, YYYY.MM, YYYY, W
将字符串转换为arrow对象 (string[,format_string])
>>> ('2021-02-12 17:30:45','YYYY-MM-DD HH:mm:ss')
2021-02-12T17:30:45+00:00
还有很多其余操作我就直接写成⼀个代码块了:
# 从字符串中通过格式参数搜索时间
>>> ('June was born in May 1980','MMMM YYYY')
1980-05-01T00:00:00+00:00
# arrow对象属性    datetime,timestamp,native,tzinfo
桂花的别称
>>> a = arrow.utcnow()
>>> a.datetime
datetime.datetime(2021,2,12,9,39,13,254194, tzinfo=tzutc())
>>> a.timestamp
1613122753
>>> a.naive
datetime.datetime(2021,2,12,9,39,13,254194)
>>> a.tzinfo
tzutc()
# 时间推移    a.shift(**kwargs)
>>> a.shift(weeks=+3)#三周后
<Arrow [2021-03-05T09:39:13.254194+00:00]>
>>> a.shift(days=-1)#⼀天前
<Arrow [2021-02-11T09:39:13.254194+00:00]>
>>> a.shift(weekday=6)#距离最近a的星期⽇,weekday从0到6
<Arrow [2021-02-14T09:39:13.254194+00:00]>
未完待续。。

本文发布于:2023-07-17 08:33:57,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1101090.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:时间   字符串   格式
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图