使用时区偏移量解析UNIX时间戳(例如"14232335 +0200")

opa*_*tut 2 python timezone datetime parsing unix-timestamp

我试图在python中解析一些时间戳.它们看起来像这样:

1334423456 +0200
Run Code Online (Sandbox Code Playgroud)

显然第一部分是UNIX时间戳,第二部分是时区偏移,格式为"+ HHMM"/" - HHMM".我想把它变成python.datetime对象.

我可以使用datetime.fromtimestamp的第一部分:

datetime.fromtimestamp(s.split()[0])
Run Code Online (Sandbox Code Playgroud)

但我不知道如何应用第二部分(时区偏移).任何帮助,将不胜感激.

Mar*_*ers 5

最简单的方法是使用该iso8601模块 ; 它包括一个(内部)时区解析器,几乎可以处理您的格式; 我们需要插入一个:以使其符合ISO 8601时区:

import iso8601
stamp, tz = s.split()
timezone = iso8601.iso8601.parse_timezone(tz[:3] + ':' + tz[3:])
dt = datetime.fromtimestamp(int(stamp)).astimezone(timezone)
Run Code Online (Sandbox Code Playgroud)