# -*- coding: utf-8 -*-
import re
from datetime import datetime, timedelta
class TimeUtil(object):
@classmethod
def parse_timezone(cls, timezone):
"""
解析时区表示
:param timezone: str eg: +8
:return: dict{symbol, offset}
"""
result = re.match(r'(?P<symbol>[+-])(?P<offset>\d+)', timezone)
symbol = result.groupdict()['symbol']
offset = int(result.groupdict()['offset'])
return {
'symbol': symbol,
'offset': offset
}
@classmethod
def convert_timezone(cls, dt, timezone="+0"):
"""默认是utc时间,需要"""
result = cls.parse_timezone(timezone)
symbol = result['symbol']
offset = result['offset']
if symbol == '+':
return dt + timedelta(hours=offset)
elif symbol == '-':
return dt - timedelta(hours=offset)
else:
raise Exception('dont parse timezone format')
if __name__ == '__main__':
utc_now = datetime.utcnow()
now = datetime.now()
convert_now = TimeUtil.convert_timezone(utc_now, '+8')
print('utc_now ', utc_now)
print('now ', now)
print('convert_now', convert_now)
"""
utc_now 2021-01-27 03:26:13.132189
now 2021-01-27 11:26:13.132198
convert_now 2021-01-27 11:26:13.132189
"""
Python:datetime时间UTC时间转东八区
原创
©著作权归作者所有:来自51CTO博客作者彭世瑜的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
转换时间为东八区时间
接口请求到的数据需转东八区时间
时间戳 方法调用 时间格式 时间转换 -
mysql 修改为 native
MySQL系统变量(system variables)实际上是一些系统参数,用于初始化或设定数据库对系统资源的占用,文件存放位置等等。这些个系统变量可以分为全局以及会话级别层面来修改,有些也可以进行动态修改。本文主要介绍了系统变量的一些概念以及如何设置查看这些系统变量。1、什么是系统变量 系统变量实际上用于控制数据库的一些行为和方式的参
mysql 修改为 native Database dba mysql global variables