gpt4 book ai didi

python - 无法获得正确的时间戳范围

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:22 27 4
gpt4 key购买 nike

我希望生成一系列时间戳:

18:00 (EST) on October 6th, 2014

同时 400 秒后,间隔大小为 2.2 秒。

获取开始和结束日期:

当我执行以下操作时:

start_time = datetime.datetime(year  = 2014, 
month = 10,
day = 6,
hour = 18,
tzinfo = pytz.timezone('US/Eastern'))
end_time = start_time + datetime.timedelta(seconds=400)

有些事情似乎失败了:

  • start_time.isoformat() 返回 '2014-10-06T18:06:40-04:56'
  • end_time.isoformat() 返回 '2014-10-06T18:06:40-04:56'

请注意,上述两个时间戳的时区偏移量为:-04:56(4 小时 56 分钟),尽管 EST 比 UTC 晚了 5 小时。 ?

获取时间范围:

继续前进,如果我尝试每隔 2.2 秒(即 2200 毫秒)获取这两个日期之间的时间戳范围:

ts = pd.date_range(start=start_time, end=end_time, freq='2200L')

我得到:

> ts[0]
Timestamp('2014-10-06 18:56:00-0400', tz='US/Eastern', offset='2200L')

或者换句话说:

> ts[0].isoformat()
'2014-10-06T18:56:00-04:00'

这也没有意义(请注意时间是 18:56,即使我要求获得 18:00 之间的范围18:06:40(即 18:00400 秒)

最佳答案

我厌倦了处理 Python 笨拙的日期时间实现(尤其是在时区方面),并开始使用 crsmithdev.com/arrow。使用此库的解决方案:

import arrow

start_time = arrow.get(2014, 10, 6, tzinfo='US/Eastern')
end_time = start_time.replace(seconds=400)

print start_time.isoformat()
print end_time.isoformat()

# alternate form

start_time = arrow.get('2014-10-06T18:00:00.000-04:00')
end_time = start_time.replace(seconds=400)

print start_time.isoformat()
print end_time.isoformat()

# get a datetime from an arrow object
start_time_dt = start_time.datetime

关于python - 无法获得正确的时间戳范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26266445/

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