如何在Haskell中获得毫秒精度的unix时间戳?

时间:2017-03-16 20:10:49

标签: haskell timestamp

这个shell命令的Haskell等价物是什么?

$ date "+%s%3N"
1489694389603

1 个答案:

答案 0 :(得分:14)

使用time包:

  1. 使用getPOSIXTime,返回NominalDiffTime。这表示小数秒数,精度为10 -12 秒。

  2. 乘以1000将秒数转换为毫秒数。

  3. NominalDiffTime实现RealFrac类,因此您可以使用round转换为整数。

  4. import Data.Time.Clock.POSIX (getPOSIXTime)
    
    λ> (round . (* 1000)) <$> getPOSIXTime
    1489694668011