为啥将纪元时间转换错误?啥是正确和最快的方法?
Posted
技术标签:
【中文标题】为啥将纪元时间转换错误?啥是正确和最快的方法?【英文标题】:Why getting epoch time conversion wrong? What is the right and quickest way?为什么将纪元时间转换错误?什么是正确和最快的方法? 【发布时间】:2019-01-10 13:31:12 【问题描述】:我的目标:以最快的方式转换这个时间戳。
'timestamp': 1533203940000, 'open': 564.1, 'high': 567.55, 'low': 563.4, 'close': 564.45, 'volume': 522096, 'cp': 564.45
进入“2018-08-02 15:29:00”(这是我应该得到的)
但是,我没有让它正确转换。时间是错误的。 也许这与时区有关?我试过....
n=np.array([1533203940]).astype('datetime64[s]')
我明白了:
['2018-08-02T09:59:00']
然后……
time.gmtime(1533203940)
也是错的……
time.struct_time(tm_year=2018, tm_mon=8, tm_mday=2, tm_hour=9,
tm_min=59, tm_sec=0, tm_wday=3, tm_yday=214, tm_isdst=0)
熊猫也不对。
pd.to_datetime(1533203940,unit='s')
它给了....
2018-08-02 09:59:00
只有日期时间才能正确!!!
datetime.fromtimestamp(1533203940)
这给了..
2018-08-02 15:29:00
其他人哪里出错了?如果没有答案,我可能会弄错我未来的计算,甚至可能没有意识到:(
【问题讨论】:
【参考方案1】:看来你需要这样的东西
df['timestamp'] = pd.to_datetime(df['timestamp'], unit= 'ms').dt.tz_localize('utc') \
.dt.tz_convert(tz='USE YOUR TIME ZONE HERE').apply \
(lambda x: datetime.replace(x, tzinfo=None))
【讨论】:
嘿,感谢您的回复,但我遇到了一些错误,我尝试了这个:df = pd.to_datetime(t, unit= 'ms').tz_localize('UTC').tz_convert('Asia /加尔各答') ***.com/questions/42826388/… 另一种方法是执行 pd.DateOffset(hours=5,minutes=30) 以到达所需的时区。以上是关于为啥将纪元时间转换错误?啥是正确和最快的方法?的主要内容,如果未能解决你的问题,请参考以下文章