我正在尝试将给定的字符串转换为Unix时间。字符串中总是有一个时间,也可以选择有一个日期。例如,12/31/15 11:59PM
,12/31/15 11:59
,和11:59
是我可以得到的字符串。在
使用以下命令,可以正确转换这些字符串中的任何一个:
from dateutil import parser
import time
timezone = "12/31/15 11:59"
target = time.mktime(parser.parse(timestamp).timetuple())
但是,如果同时给定一个时区,例如12/31/15 11:59PM PST
,则时区将被timetuple()
删除,并且当转换工作时,它仍然会给出相同的结果,就好像时区不在字符串中一样(因此只对系统的本地时间是正确的)。在
我还没有找到一种优雅的方法:1)在给定时区时,将字符串正确地转换为适当的时区;2)允许时区字符串存在;如果缺少,则假定为本地时区。在
输入时间字符串可能不明确:
11:59
:utc偏移量可能取决于日期,例如,在夏季可能不同。为了消除日期的歧义,可以将default
参数传递给.parse()
方法tzinfos
参数mktime()
可能在某些系统上或在DST转换期间失败。^{输出
^{pr2}$tz.localize()
使用is_dst=False
,在DST转换期间或对于不存在的本地时间,请参见"Can I just always set is_dst=True?" section。在相关问题 更多 >
编程相关推荐