今天就跟大家聊聊有关python实现带时区日期格式化,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
<>强如下所示:强>
结婚,2019年10月23日21:12:01 + 0800
结婚,2019年10月23日06:08:37 + 0000 (GMT)
星期五,2019年10月11日12:42:07 + 0800 (CST)
结婚,2019年10月23日06:08:37 + 0000 (UTC)
引用>几种不同的日期格式化方式,不同的时区时间转换成北京时间,也就是东八区的时间,注意的是后面的时区表示方式,
def getTimeStamp(自我、日期): 结果=re.search (r" [\ - \ +] \ d +“,日期) 如果结果: time_area=result.group () 符号=time_area [0] 抵消=int (time_area [1]) + int (time_area [2]) 如果符号==?“: format_str=& # 39; %, % d % b % Y % H: % M: % S & # 39; + time_area 如果“UTC"在日期: format_str=& # 39; %, % d % b % Y % H: % M: % S & # 39; + time_area + & # 39;(UTC) & # 39; 如果“GMT"在日期: format_str=& # 39; %, % d % b % Y % H: % M: % S & # 39;+ time_area + & # 39;(GMT) & # 39; 如果“CST"在日期: format_str=& # 39; %, % d % b % Y % H: % M: % S & # 39;+ time_area + & # 39;(CST) & # 39; utcdatetime=ormat_str strptime(日期) tempsTime=time.mktime (utcdatetime) tempsTime=datetime.datetime.fromtimestamp (tempsTime) 如果偏移量比;8: 抵消=抵消8 tempsTime=tempsTime + datetime.timedelta(小时=抵消) localtimestamp=tempsTime.strftime (“Y % - % - % d") 其他: format_str=& # 39; %, % d % b % Y % H: % M: % S & # 39;+ time_area utcdatetime=ormat_str strptime(日期) tempsTime=time.mktime (utcdatetime) tempsTime=datetime.datetime.fromtimestamp (tempsTime) tempsTime=tempsTime + datetime。timedelta(小时=(抵消+ 8)) localtimestamp=tempsTime.strftime (“Y % - % - % d") 返回localtimestamp<>强Python处理带时区的datetime类型强>
在存储时间类型到数据库的时候,通常使用datetime类型。使用datetime类型就会遇到时区时区的问题。为了能够处理时区,推荐存数据库的使用存入的是基于UTC的时间日期,在本地取用的时候在转成本地时间。
Python定义了抽象类tzinfo,这个类不能直接使用.3.x版本(至少3.4,3.5)定义了时区类。但是这个时区还是不如第三方pytz类好用。
还有一个问题就是如何得到本机类的时区,在时间里面可以得到一个时间。时区,是一个基于秒的抵消值。注意这个时间不是datetime。时间,就是时间,用于操作系统相关的时间信息。不是很好,用推荐tzlocal库。
<强>安装pytz和tzlocal 强>
使用脉冲安装就可以了。
pip安装pytz
pip安装tzlocal
引用><>强如何使用强>
得到当前时间,用于数据的存储
从datetime进口datetime
t=datetime.utcnow ()
引用>已知本地时间,需要转成UTC时间用于存储
进口pytz 从tzlocal进口get_localzone tz=get_localzone() #获得本地时区 utc=pytz。utc #获得utc时区 dt=datetime (2016、6、12、5 0 0) loc_dt=tz.localize (dt) #将DateTime数据贴上时区 utc_dt=loc_dt.astimezone (utc) #转换到新的时区已知utc时间,转本地
进口pytz 从tzlocal进口get_localzone utc=pytz.utc tz=get_localzone () t=datetime (x, x, x, x, x, x) utc_dt=utc.localize (t) loc_dt=utc_dt.astimezone (tz)看完上述内容,你们对python实现带时区日期格式化有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
python实现带时区日期格式化