python 带时区的日期格式化操作


Posted in Python onOctober 23, 2020

如下所示:

Wed, 23 Oct 2019 21:12:01 +0800

Wed, 23 Oct 2019 06:08:37 +0000 (GMT)

Fri, 11 Oct 2019 12:42:07 +0800 (CST)

Wed, 23 Oct 2019 06:08:37 +0000 (UTC)

几种不同的日期格式化方式,不同的时区时间转换成北京时间,也就是东八区的时间,注意的是后面的时区表示方式,

def getTimeStamp(self, date):
    result = re.search(r"[\-\+]\d+", date)
    if result:
      time_area = result.group()
      symbol = time_area[0]
      offset = int(time_area[1]) + int(time_area[2])
      if symbol == "+":
        format_str = '%a, %d %b %Y %H:%M:%S '+ time_area
        if "UTC" in date:
          format_str = '%a, %d %b %Y %H:%M:%S '+ time_area+ ' (UTC)'
        if "GMT" in date:
          format_str = '%a, %d %b %Y %H:%M:%S ' + time_area + ' (GMT)'
        if "CST" in date:
          format_str = '%a, %d %b %Y %H:%M:%S ' + time_area + ' (CST)'
        utcdatetime = time.strptime(date, format_str)
        tempsTime = time.mktime(utcdatetime)
        tempsTime = datetime.datetime.fromtimestamp(tempsTime)
        if offset > 8:
          offset = offset -8
        tempsTime = tempsTime + datetime.timedelta(hours=offset)
        localtimestamp = tempsTime.strftime("%Y-%m-%d")
      else:
        format_str = '%a, %d %b %Y %H:%M:%S ' + time_area
        utcdatetime = time.strptime(date, format_str)
        tempsTime = time.mktime(utcdatetime)
        tempsTime = datetime.datetime.fromtimestamp(tempsTime)
        tempsTime = tempsTime + datetime.timedelta(hours=(offset + 8))
        localtimestamp = tempsTime.strftime("%Y-%m-%d")
    return localtimestamp

补充知识:Python处理带timezone的datetime类型

在存储时间类型到数据库的时候,通常使用DateTime类型。使用DateTime类型就会遇到时区timezone的问题。为了能够处理timezone, 推荐存数据库的使用存入的是基于UTC的时间日期,在本地取用的时候在转成本地时间。

Python定义了抽象类tzinfo, 这个class不能直接使用。3.x版本(至少3.4, 3.5)定义了timezone class。但是这个timezone还是不如第三方pytz类好用。

还有一个问题就是如何得到本机的timezone。在time class里面可以得到一个time.timezone, 是一个基于秒的offset值。注意这个time不是datetime.time, 就是time,用于os相关的时间信息。不是很好用,推荐tzlocal库。

安装pytz和tzlocal

使用pip安装就可以了。

pip install pytz

pip install tzlocal

如何使用

得到当前时间,用于数据的存储

from datetime import datetime

t = datetime.utcnow()

已知本地时间,需要转成UTC时间用于存储

import pytz
from tzlocal import get_localzone
tz = get_localzone()  #获得本地timezone
utc = pytz.utc     #获得UTC timezone
dt = datetime(2016, 6, 12, 5, 0, 0)
loc_dt = tz.localize(dt) #将DateTime数据贴上timezone
utc_dt = loc_dt.astimezone(utc)  #转换到新的timezone

已知UTC时间,转本地

import pytz
from tzlocal import 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 相关文章推荐
详细讲解Python中的文件I/O操作
May 24 Python
Django发送html邮件的方法
May 26 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
Apr 29 Python
Python玩转加密的技巧【推荐】
May 13 Python
Django rest framework jwt的使用方法详解
Aug 08 Python
详解Python3迁移接口变化采坑记
Oct 11 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
浅谈Django前端后端值传递问题
Jul 15 Python
django表单中的按钮获取数据的实例分析
Jul 31 Python
python opencv pytesseract 验证码识别的实现
Aug 28 Python
python如何实现word批量转HTML
Sep 30 Python
Python可视化工具如何实现动态图表
Oct 23 #Python
python 匿名函数与三元运算学习笔记
Oct 23 #Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 23 #Python
Python+OpenCV图像处理——实现直线检测
Oct 23 #Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 23 #Python
Python 列表推导式需要注意的地方
Oct 23 #Python
python中的split、rsplit、splitlines用法说明
Oct 23 #Python
You might like
对PHP PDO的一些认识小结
2015/01/23 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
JavaScript实现的MD5算法完整实例
2016/02/02 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
2016/09/23 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
jQuery实现的点击按钮改变样式功能示例
2018/07/21 jQuery
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
通过cmd进入python的步骤
2020/06/16 Python
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
毕业生怎样写好自荐信
2013/11/11 职场文书
农救科工作职责
2013/11/27 职场文书
冰淇淋店创业计划书范文
2013/12/27 职场文书
教师年度考核自我鉴定
2014/01/19 职场文书
家长会欢迎标语
2014/06/24 职场文书
大学生简历求职信
2014/06/24 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
导游词之井冈山
2019/11/20 职场文书
MySQL数据库中的锁、解锁以及删除事务
2022/05/06 MySQL