您当前的位置: 首页 >  Python

彭世瑜

暂无认证

  • 1浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python:datetime时间UTC时间转东八区

彭世瑜 发布时间:2021-01-27 11:32:33 ,浏览量:1

# -*- 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[+-])(?P\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
    """

关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.2290s