问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

【小技巧】Python时间戳转换日期方法

发布网友 发布时间:2024-09-07 03:12

我来回答

1个回答

热心网友 时间:2024-11-08 00:32

前言

时间在我们工作中随处,最常见的在于我们时钟?、手表?、手机?、电脑?等,再以不同的形式和风格展示在我们的眼睛里。

时间格式有很多中,有适合人类阅读的年月日时分秒(Y-m-dH:M:S),也有机器存储的时间戳

什么是时间戳?

时间戳是一组字符或者编码信息的序列,将发生的事件数据进行唯一标识,保障数据可验证性和完整性,通常用于客户-服务端进行通信、log日志打印等。

在我们需要电子合同、保密文档则需要一个更加权威的时间戳服务来进行标识,保障文件的安全性。

时间戳作用

防篡改:保障文件所带的时间戳是经过MD5值加密传输的,防止在传输的过程中被他人篡改

防复用:当客户端和服务器端不在同一个时区时,UTC时间戳就能帮助他人进行复用

时间戳计算方式

起始时间:Unix元年:1970/1/10:0:0

时间戳计算方式:

时间戳转换成时间:则以除余的方式进行计算的

需求场景

当我们工作场景中查看设备日志或指令查看服务器日期,日期是时间戳形式展示的,这时候我们需要把时间戳转换成我们常用的时间格式(年/月/日等)

本期,我们将使用Python来对时间戳转换时间,看看有哪些方法吧,let'sgo??

1.使用time.localtime()方法

Python内置库time.localtime([sec])方法来对时间戳进行转换

当sec为none时,默认返回当地时间

sec单位为秒,以Unix纪元时间1970/1/1开始计算

?time.localtime()是根据所在当地时区进行转换的

importtimedeftimestamp_convert_localdate(timestamp,time_format="%Y/%m/%d%H:%M:%S"):#按照当前设备时区来进行转换,比如当前北京时间UTC+8timeArray=time.localtime(timestamp)styleTime=time.strftime(str(time_format),timeArray)returnstyleTime

调用timestamp_convert_localdate方法:

print("本地北京时间:",timestamp_convert_localdate(1632737190))

2.使用time.gmtime()方法

Python内置库time还提供time.gmtime([sec])方法对时间戳来转成时间

当sec为none时,默认返回当前时间

sec单位为秒,以Unix纪元时间1970/1/1开始计算

?time.gmtime()是根据英国格林威治平时(零时区)来转换的

importtimedeftimestamp_convert_gmtdate(timestamp,time_format="%Y/%m/%d%H:%M:%S"):#按照当前设备时区来进行转换,比如当前北京时间UTC+8timeArray=time.gmtime(timestamp)styleTime=time.strftime(str(time_format),timeArray)returnstyleTime

调用timestamp_convert_gmtdate()方法:

print("格林治时间:",timestamp_convert_gmtdate(1632737190))

3.使用datetime.fromtimestamp()方法

通过time库提供的两个方法,能方便我们快速将时间戳转换成时间。

但是,我们发现,前面两种方法都没有办法指定特定时区并转换成当地的时间

Python内置库datetime库提供datetime.fromtimestamp(timestamp,tz)方法,转换指定时区的当地时间

当tz为None时,时间戳会被转换为平台所在的本地日期和时间

当tz不为None时,tz必须为tzinfo实例对象(我们可以使用timezone来表示UTC偏移量)

importdatetimedeftimestamp_convert_date(timestamp,timezone,time_format="%Y/%m/%d%H:%M:%S"):#时区偏移量,timezone单位秒offset=int(timezone)/3600td=datetime.timedelta(hours=offset)tz=datetime.timezone(td)timeArray=datetime.datetime.fromtimestamp(timestamp,tz)styleTime=timeArray.strftime(str(time_format))returnstyleTime

调用timestamp_convert_date方法:

print("UTC+3:",timestamp_convert_date(1632737190,10800000))

?:使用此方法不足点:无法准确计算出指定时区夏令时段的时间

4.使用pytz库fromtimestamp方法

我们使用datetime.fromtimestamp()可以满足我们大部分情况,但是为了准确获得当地实际时间(包括是否处于夏令时、冬令时时段)

Python第三方库pytz为我们提供了可以直接指定时区代码来准确转换成当地的时间fromtimestamp()方法

importinstallpytz安装pytz第三方库

pytz.timezone(tz)来获取tzinfo对象

pytz.country_timezones('country_code')通过国家代码如cn来获取对应国家时区列表

pytz.alltimezones、pytz。common_timezones两个属性来查看有哪些时区

importpytzdeftimestamp_convert_pytzdate(timestamp,tzone,timefromat="%Y/%m/%d%H:%M:%S"):tz=pytz.timezone(tzone)dt=pytz.datetime.datetime.fromtimestamp(timestamp,tz)styleTime=dt.strftime(str(timefromat))returnstyleTime

调用timestamp_convert_pytzdate方法:

print("俄罗斯时间:",timestamp_convert_pytzdate(1632737190,"Europe/Moscow"))

?:pytz为我们提供跨时区查询,并且解决了夏令时时段、夏令时结束时断,时间模糊的问题

总结

本期,在工作场景中遇到时间戳转换时间,发现Python提供方法函数,收益匪浅。

time库提供localtime、gmttime方法

datetime库提供fromtimestamp方法

pytz库提供pytz.timezone转换成tzinfo对象

我们可以根据工作中使用场景选择使用,便于我们工作更加高效和便捷~

以上是本期内容,欢迎大佬评论点赞指正,我们下次见??

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
一般的高低床长宽多少 家用高低床尺寸一般是多少 学校高低床尺寸是多少 一般学生高低床是多少尺寸 高低床多少钱? CSGO刀和手套哪个先买?CSGO刀和手套出的概率一样吗? ...高考分是463,我有机会上西北民族大学或者是北方民族大学么?很急... 我是csgo的一个萌新想要氪一把刀求大佬推荐一款500到700的刀 您好,我的分数是437可以报预科兰州西北民族大学吗? CSGO的刀为什么这么贵?CSGO的刀会慢慢磨损吗? 天水市解放路第一小学简介解放路第一小学简介 sell什么意思啊了 sell的是什么意思啊 如何通过菜单进行MD5验证并对比文件的原始性? sell意思是什么 公合app靠谱吗 ...提示参数(包签名MD5跟现有的版本的签名MD5不一致) 合信服是贷款吗 信和财富的app叫什么 为什么拼多多不支持先用后付了! 济宁科苑小学属于哪个区 济宁明珠小学和科苑小学哪个好 好么怎么组词? 济南8所值得选择的民办小学,含学校详情介绍 DNF进入游戏弹出 (你的账号存在安全风险。已启用临时登陆限制。解除限制... 你好,硬盘都找不到可是电脑可以开启,游戏也正常 ...机器发出嗡嗡声,启用集成显卡就可以正常游戏,为什么? 老是觉得头晕怎么回事 为什么有时感觉头晕晕的 老是头晕吃什么治疗好? 大人尿床的原因 养老金2020年最新消息养老金调整受什么因素影响 2022年养老金上涨大约能涨百分之几 造梦四怎样与观音菩萨对话 陕西省农村信用社联合社省社简介 陕西 农村信用社;你好;我是勉县的,我去取钱,取了600圆钱,100圆是假的... 菲亚特派力奥早晨难启动什么原因 菲亚特西耶那不好打车? word2003删除多余的页数的方法是什么? word2003怎样打特殊字符号? 奥莉薇兰橄榄油是哪个国家的 中国自己的饮料品牌叫什么 撞了小孩车子认为没受伤把车开回车库再出来跟家长讨论算逃逸吗 新手上路,在红绿灯遛车不知情的情况下起步,只是轻微乱蹭算逃逸吗? ...自己觉得没太大问题就走了,算不算肇事逃逸? 过十字路口的时候,对分车子刹车横过去了,我算不算逃逸? lpr和基准利率哪个好?购房者如何选择? 工作岗位什么意思 出汗能排出哪些毒素 2023年属猪的运势和财运 财运非常旺盛且事业发展不错