将纳秒转换为 Python 中的时间戳

soc*_*ley 2 python time date

我知道可以将 java 中的纳秒转换为这样的时间戳:

import java.util.Date;
 public class DateDemo {

  public static void main(String args[]) {
  // Instantiate a Date object

    long i = 1462352019029395103L;
  // display time and date using toString()
   Date date = new Date(i / 1000000);

  System.out.println(date.toString());
  }
 }
Run Code Online (Sandbox Code Playgroud)

此品牌:UTC 2016 年 5 月 4 日星期三 08:53:39

在 Python 中,输出是:

>>> from datetime import datetime
>>> dt = datetime.fromtimestamp(1462352019029395103 // 1000000000)
>>> s = dt.strftime('%Y-%m-%d %H:%M:%S')
>>> s
'2016-05-04 10:53:39'
Run Code Online (Sandbox Code Playgroud)

在 python 中的差异是 2 小时。我不知道确切的原因。我读过一些早期的帖子,说 Python 无法转换纳秒。有什么办法可以在python中获得准确的时间戳吗?

Mos*_*oye 8

使用utcfromtimestamp,使其等效采用Java中的日期时间:

>>> dt = datetime.utcfromtimestamp(1462352019029395103 // 1000000000)
>>> dt.strftime('%Y-%m-%d %H:%M:%S')
'2016-05-04 08:53:39'
Run Code Online (Sandbox Code Playgroud)

参考:

协调世界时

'