Convert UTC datetime string to local datetime

后端 未结 13 981
醉话见心
醉话见心 2020-11-22 05:37

I\'ve never had to convert time to and from UTC. Recently had a request to have my app be timezone aware, and I\'ve been running myself in circles. Lots of information on co

13条回答
  •  太阳男子
    2020-11-22 05:50

    import datetime
    
    def utc_str_to_local_str(utc_str: str, utc_format: str, local_format: str):
        """
        :param utc_str: UTC time string
        :param utc_format: format of UTC time string
        :param local_format: format of local time string
        :return: local time string
        """
        temp1 = datetime.datetime.strptime(utc_str, utc_format)
        temp2 = temp1.replace(tzinfo=datetime.timezone.utc)
        local_time = temp2.astimezone()
        return local_time.strftime(local_format)
    
    utc = '2018-10-17T00:00:00.111Z'
    utc_fmt = '%Y-%m-%dT%H:%M:%S.%fZ'
    local_fmt = '%Y-%m-%dT%H:%M:%S+08:00'
    local_string = utc_str_to_local_str(utc, utc_fmt, local_fmt)
    print(local_string)   # 2018-10-17T08:00:00+08:00
    

    for example, my timezone is '+08:00'. input utc = 2018-10-17T00:00:00.111Z, then I will get output = 2018-10-17T08:00:00+08:00

提交回复
热议问题