我有一些日志文件,其格式为HH:MM :: SS.nano_seconds(例如01:02:03.123456789).我想在python中创建一个日期时间,这样我就可以整齐地做数学的时间(例如,采取时间差异).strptime 使用%f 可以很好地工作几微秒.Python日期时间和时间模块真的不支持纳秒吗?
我在转换timestamp为GMT. 据我所知,它timestamp总是及时的GMT,所以我期望datetime.fromtimestamp返回GMT或时区感知的日期时间,但它返回我的本地(布拉迪斯拉发/布拉格)日期时间。
import datetime
datetime.datetime.fromtimestamp(1566720000)
datetime.datetime(2019, 8, 25, 10, 0)
Run Code Online (Sandbox Code Playgroud)
但根据纪元转换器,它是
GMT:2019 年 8 月 25 日星期日上午 8:00:00
编辑:datetime.datetime.fromtimestamp(1566720000).tzinfo不返回任何内容,因此它不知道 tz 。
你知道问题出在哪里吗?
我知道可以将 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中获得准确的时间戳吗?