添加纳秒分辨率的unix时间

时间:2017-05-03 20:22:14

标签: powershell

我目前正在将日期时间值转换为unix时间,以便可以使用以下代码将其插入到时间序列数据库(Influxdb)中:

(Get-Date -Date $_.timecreated -UFormat %s)

不幸的是,涌入需要纳秒级分辨率,而上面给出了ms分辨率。添加nano可以接受的纳秒级分辨率作为有效的unix时间戳的最佳方法是什么?我尝试在最后添加一些0000字符,但这并不总是有效。

1 个答案:

答案 0 :(得分:2)

你必须通过计算unix时代的偏移来自己计算unix时间戳:

$utime = ((Get-Date -Date $_.timecreated) - (Get-Date "1/1/1970")).TotalSeconds

它会为您提供一个双重格式,您可以根据需要进行格式化。这将提供纳秒精度:

"{0:F06}" -f $utime

更新:值得注意的是,我认为Get-Date不会给你一个纳秒级的精确度。在我的机器上,纳秒位值始终为0.