golang RFC3339Nano时间戳可以可靠地与Unix时间戳进行相互转换吗?

时间:2019-03-19 23:48:42

标签: go time unix-timestamp rfc3339 leap-second

在我的golang应用程序中,我使用Unix秒分辨率时间戳记(由time.Now().UTC().Unix()生成)作为用于请求身份验证的哈希函数中的salt的一部分。

人们希望将此时间戳存储在数据存储中,其中约定是golang RFC3339Nano function生成的RFC3339纳秒分辨率的时间戳字符串以及用于验证的哈希。

问题:如果以后需要重新验证哈希,是否存在无法将RFC3339Nano准确地还原为原始Unix时间戳的风险?

我知道leap seconds存在一些问题,这些问题适用于Unix时间戳;是否有可能通过RFC3339Nano来回传递会导致时间戳不同,从而错误地使签名无效?

RFC3339Nano时间戳和Unix时间戳是从同一时间生成的。时间结构。

我倾向于从leap-seconds spawn an extra 61st second at the day of their occurrence开始使用,我希望它将映射回与前一秒相同的Unix时间戳。反过来显然会失败。

1 个答案:

答案 0 :(得分:0)

我认为您没有理由遭受这种麻烦,为什么不直接使用Unix()直接存储到数据库并使用它进行还原呢?