至于实现,则
time.Now()回退到运行时实现的功能。您可以查看C时间实现以及
time·now汇编语言中的实现(在这种情况下为Linux
amd64)。然后使用
clock_gettime,提供纳秒级分辨率。在Windows上,这是通过调用来实现的
GetSystemTimeAsFileTime,它也会生成纳秒(不是那么高的分辨率,而是纳秒)。
因此,是的,分辨率取决于操作系统,您不能指望它在每个OS上都是准确的,但是开发人员正在努力使其达到最佳状态。例如,在go1.0.3,
time·now为FreeBSD
使用
gettimeofday代替
clock_gettime,其中仅提供精确到毫秒。通过查看存储在其中的值可以看到
AX它,因为它是syscall
id。如果看一下引用的程序集,可以看到ms值乘以1000得到十亿分之一秒。但是,此问题现已解决。
如果要确定,请在运行时源代码中检查相应的实现,并询问操作系统的手册。



