python实现带时区日期格式化

  介绍

今天就跟大家聊聊有关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实现带时区日期格式化