使用time.Unix()从float解析十进制的unix时间戳?

问题描述:

This is pretty straightforward, but I couldn't find a response and figured that others might have the same question.

I have a Unix timestamp as a float, that includes a decimal value for fractions of seconds. What's the conversion factor to pass this float as two separate integers to the time package's time.Unix(sec int64, nsec int64) function, without losing the decimal precision?

这很简单,但是我找不到答案,并认为其他人可能有相同的问题。 / p>

我有一个Unix时间戳记作为浮点数,其中包括一个小数秒的十进制值。 将这个浮点数作为两个单独的整数传递给 time code>包的 time.Unix(sec int64,nsec int64) code>函数而不损失小数精度的转换因子是什么? p> div>

sec, dec := math.Modf(timeFloat);
time.Unix(int64(sec), int64(dec*(1e9)));