从整数创建 tz 感知的 pandas 时间戳对象

Mic*_* WS 3 numpy pandas datetime64

我有一个整数,它是 UNIX 纪元之后的微秒数。(格林威治标准时间)

\n\n

如何使用 astype 将 1349863207154117 转换为 pandas.Timestamp("2012-10-10T06:00:07.154117", tz=\xc2\xa8UTC\xc2\xa8) ?astype 的文档不是很详尽。我已经尝试过以下方法。

\n\n
x = 1349863207154117\ndt64 = np.int64(x).astype("M8[us]")\nprint dt64\n
Run Code Online (Sandbox Code Playgroud)\n\n

返回:

\n\n
np.datetime64("2012-10-10T06:00:07.154117-0400")\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  1. 如果我只想要几秒钟,这有效:
  2. \n
\n\n
x = 1349863207154117\ndt64 = np.int64(x).astype("M8[us]")\nprint dt64\n
Run Code Online (Sandbox Code Playgroud)\n

Jef*_*eff 5

In [2]: pd.to_datetime(1349863207154117,unit='us')
Out[2]: Timestamp('2012-10-10 10:00:07.154117')
Run Code Online (Sandbox Code Playgroud)
  • 如果你想在当地时区这样做
In [6]: pd.to_datetime(1349863207154117,unit='us').tz_localize('US/Eastern')
Out[6]: Timestamp('2012-10-10 10:00:07.154117-0400', tz='US/Eastern')
Run Code Online (Sandbox Code Playgroud)
  • 如果您的时间采用 UTC 时间,但您希望采用其他 tz 时间。
In [9]: pd.to_datetime(1349863207154117,unit='us').tz_localize('UTC').tz_convert('US/Eastern')
Out[9]: Timestamp('2012-10-10 06:00:07.154117-0400', tz='US/Eastern')
Run Code Online (Sandbox Code Playgroud)
  • 或这个
In [10]: pd.to_datetime(1349863207154117,unit='us',utc=True).tz_convert('US/Eastern')
Out[10]: Timestamp('2012-10-10 06:00:07.154117-0400', tz='US/Eastern')
Run Code Online (Sandbox Code Playgroud)