当前位置: 首页 > 后端技术 > Python

PythonDelorean优秀的时间格式智能转换工具

时间:2023-03-26 15:17:31 Python

DeLorean是Python的第三方模块,基于pytz和dateutil开发,用于处理Python中的日期时间格式转换。由于时间转换是一个非常微妙的问题,DeLorean希望为转换、操作和生成日期时间提供更简洁、更轻松的解决方案。例如,要实例化一个字符串形式的时间对象,Delorean只需要解析指定的字符串,无需声明其格式就可以进行转换。至于Delorean模组名字的由来,Delorean就是电影《回到未来》里那辆极酷的鸥翼车。这部电影中非常有代表性的汽车的名字被用作库名。作者大概想表达的是,使用这个库可以让你不受任何限制地自由穿梭于时空之中。这个模块最智能的地方在于它可以自动识别字符串的时间格式并转换成Delorean对象,而且这个Delorean对象和Datetime对象是相通的:fromdeloreanimportparseparse("2011/01/0100:00:00-0700")#Delorean(datetime=datetime.datetime(2011,1,1,0,0),timezone=pytz.FixedOffset(-420))parse("2018-05-06")#Delorean(datetime=datetime.datetime(2018,6,5,0,0),timezone='UTC')下面介绍一下它的基本用法。一、准备工作请选择以下任意一种方式输入命令安装依赖项:Windows环境打开Cmd(开始-运行-CMD)。MacOS环境打开Terminal(command+空格进入Terminal)。如果您使用的是VSCode编辑器或Pycharm,则可以直接使用界面底部的Terminal。pipinstallDelorean2.DeloreanBasic使用轻松获取当前时间:fromdeloreanimportDeloreanand=Delorean()print(d)#Delorean(datetime=datetime.datetime(2021,10,6,9,5,57,611589),timezone='UTC')将日期时间格式时间转换为Delorean:importdatetimefromdeloreanimportDeloreanand=Delorean()print(d)d=Delorean(datetime=datetime.datetime(2018,5,10,8,52,23,560811),timezone='UTC')#这里默认是UTC时间print(d)#Delorean(datetime=datetime.datetime(2021,10,6,9,5,57,611589),timezone='UTC')#Delorean(datetime=datetime.datetime(2018,5,10,8,52,23,560811),timezone='UTC')转换为国内时区:importdatetimefromdeloreanimportDelorean=Delorean(datetime=datetime.datetime(2018,5,10,8,52,23,560811),timezone='UTC')d=d.shift("Asia/Shanghai")print(d)#Delorean(datetime=datetime.datetime(2018,5,10,16,52,23,560811),timezone='Asia/Shanghai')输出为datetime,日期没问题:importdatetimefromdeloreanimportDeloreanand=Delorean(datetime=datetime.datetime(2018,5,10,8,52,23,560811),timezone='UTC')d=d.shift("亚洲/上海")print(d.datetime)print(d.date)#2018-05-1016:52:23.560811+08:00#2018-05-10查看时间戳和UTC时间:importdatetimefromdeloreanimportDelorean=Delorean(datetime=datetime.datetime(2018,5,10,8,52,23,560811),timezone='UTC')d=d.shift("Asia/Shanghai")print(d.epoch)print(d.naive)#1525942343.560811#2018-05-1008:52:23.560811使用unix时间戳初始化Delorean:fromdeloreanimportepochd=epoch(1357971038.102223).shift("Asia/Shanghai")print(d)#Delorean(datetime=datetime.datetime(2013,1,12,14,10,38,102223),timezone='Asia/Shanghai')Delorean支持timedelta时间加减Delorean可以使用timedelta进行加减得到一个Delorean对象:importdatetimefromdeloreanimportDeloreanand=Delorean(datetime=datetime.datetime(2018,5,10,8,52,23,560811),timezone='UTC')d=d.shift("亚洲/上海")print(d)d2=d+datetime.timedelta(hours=2)print(d2)d3=d-datetime.timedelta(hours=3)print(d3)#Delorean(datetime=datetime.datetime(2018,5,10,16,52,23,560811),timezone='Asia/Shanghai')#Delorean(datetime=datetime.datetime(2018,5,10,18,52,23,560811),timezone='亚洲/上海')#Delorean(datetime=datetime.datetime(2018,5,10,13,52,23,560811),timezone='亚洲/上海')3.Delorean高级使用通常我们不关心有多少微秒或秒,所以Delorean提供了一个非常方便的过滤方式:fromdeloreanimportDelorean=Delorean()print(d)#Delorean(datetime=datetime.datetime(2019,3,14,4,0,50,597357),timezone='UTC')d.truncate('second')#Delorean(datetime=datetime.datetime(2019,3,14,4,0,50),时区='UTC')d.truncate('小时')#Delorean(datetime=datetime.datetime(2019,3,14,4,0),timezone='UTC')d.truncate('month')#Delorean(datetime=datetime.datetime(2019,3,1,0,0),timezone='UTC')d.truncate('year')#Delorean(datetime=datetime.datetime(2019,1,1,0,0),timezone='UTC')另外,datetime格式的字符串转换的时候需要标注各种格式,在Delorean中,我们不用这么麻烦,直接解析即可:fromdeloreanimportparseparse("2011/01/0100:00:00-0700")#Delorean(datetime=datetime.datetime(2011,1,1,0,0),timezone=pytz.FixedOffset(-420))parse("2018-05-06")#Delorean(datetime=datetime.datetime(2018,6,5,0,0),timezone='UTC')的以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发“J”也能领取大量学习资料或者上编程学习网,了解更多编程技术。