带时区的日期和时间
Date and time with time zone
我的日期时间是这样的:
date_time = "2022-02-17 08:29:36.345374"
我想将其转换为另一个时区,我正在使用的 API 有一个信息,例如 userTimeZone = -300
。我尝试搜索但无法从中找到 userTimeZone
我可以获取我的时区时间。
您可以通过 timedelta
创建给定偏移量的 timezone
(我假设 -300
以分钟为单位,相当于 -5 小时):
>>> from datetime import datetime, timedelta, timezone
>>> tz = timezone(timedelta(minutes=-300))
>>> tz
datetime.timezone(datetime.timedelta(days=-1, seconds=68400))
>>> tz.tzname(None)
'UTC-05:00'
一旦您将 date_time
字符串(我假设它是 UTC 格式)解析为实际日期时间:
>>> dt = datetime.strptime(date_time, "%Y-%m-%d %H:%M:%S.%f")
>>> dt
datetime.datetime(2022, 2, 17, 8, 29, 36, 345374)
您可以应用偏移量来查看当地时间:
>>> local = dt.astimezone(tz)
>>> local
datetime.datetime(2022, 2, 17, 3, 29, 36, 345374, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400)))
>>> local.isoformat()
'2022-02-17T03:29:36.345374-05:00'
我的日期时间是这样的:
date_time = "2022-02-17 08:29:36.345374"
我想将其转换为另一个时区,我正在使用的 API 有一个信息,例如 userTimeZone = -300
。我尝试搜索但无法从中找到 userTimeZone
我可以获取我的时区时间。
您可以通过 timedelta
创建给定偏移量的 timezone
(我假设 -300
以分钟为单位,相当于 -5 小时):
>>> from datetime import datetime, timedelta, timezone
>>> tz = timezone(timedelta(minutes=-300))
>>> tz
datetime.timezone(datetime.timedelta(days=-1, seconds=68400))
>>> tz.tzname(None)
'UTC-05:00'
一旦您将 date_time
字符串(我假设它是 UTC 格式)解析为实际日期时间:
>>> dt = datetime.strptime(date_time, "%Y-%m-%d %H:%M:%S.%f")
>>> dt
datetime.datetime(2022, 2, 17, 8, 29, 36, 345374)
您可以应用偏移量来查看当地时间:
>>> local = dt.astimezone(tz)
>>> local
datetime.datetime(2022, 2, 17, 3, 29, 36, 345374, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400)))
>>> local.isoformat()
'2022-02-17T03:29:36.345374-05:00'