前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python处理带timezone的da

Python处理带timezone的da

作者头像
py3study
发布2020-01-09 10:41:55
1.3K0
发布2020-01-09 10:41:55
举报
文章被收录于专栏:python3

Python处理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安装就可以了。

代码语言:javascript
复制
pip install pytz
pip install tzlocal

如何使用

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

代码语言:javascript
复制
from datetime import datetime
t = datetime.utcnow()

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

代码语言:javascript
复制
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时间,转本地

代码语言:javascript
复制
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)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python处理datetime类型的问题
  • 安装pytz和tzlocal
  • 如何使用
    • 得到当前时间,用于数据的存储
      • 已知本地时间,需要转成UTC时间用于存储
        • 已知UTC时间,转本地
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档