gpt4 book ai didi

python - 将日期时间字符串、时区转换为纪元秒

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:02 26 4
gpt4 key购买 nike

我有一个看似简单的问题,但我找不到简单的答案。我想编写一个函数,它接受两个字符串作为输入并给出一个整数作为输出。

在 R 中,该函数将非常简单:

utc_seconds = function(date_string, tz) as.integer(as.POSIXct(date_string, tz = tz))

我控制着date_string并且知道格式总是正确的,例如2018-02-11 00:00:00,而且我也知道 tz 将始终位于 Olson format .

输入/输出示例:

utc_seconds('2018-02-11 00:00:00', tz = 'Asia/Singapore')
# 1518278400

我研究了datetimepytztime等的各种组合/排列,但无济于事。 This table 看起来很有希望,但最终我不知道如何使用它。

我已经按如下方式管理了“黑客”,但这感觉很愚蠢(向我的输入字符串添加无关的信息):

from dateutil.parser import parse
from dateutil.tz import gettz
parse("2018-02-01 00:00:00 X", tzinfos={'X': gettz('Asia/Singapore')})
# datetime.datetime(2018, 2, 11, 0, 0, tzinfo=tzfile('/usr/share/zoneinfo/Asia/Singapore'))

但我也无法将其转换为 UTC 时间。

最佳答案

您可以使用 datetime timestamp 来获取纪元时间

from datetime import datetime
import pytz

def utc_seconds(str_dt, timezone):
timezone = pytz.timezone(timezone)
dt = datetime.strptime(str_dt, '%Y-%m-%d %H:%M:%S')
dt_timezone = timezone.localize(dt)

return int(dt_timezone.timestamp())

utc_seconds('2018-02-11 00:00:00', 'Asia/Singapore')
# 1518278400

关于python - 将日期时间字符串、时区转换为纪元秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49320170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com