【问题标题】:In a unix timestamp should there be numbers after a decimal point?在 unix 时间戳中,小数点后应该有数字吗?
【发布时间】:2014-01-08 17:10:22
【问题描述】:

当我使用以下代码生成我的 unix 时间戳时,我在小数点后得到两个数字,如下所示:1389200512.12

这些数字应该在这里吗?他们有什么意思吗?这些是几分之一毫秒?

private double ConvertToTimestamp(DateTime value)
{
    //create Timespan by subtracting the value provided from
    //the Unix Epoch
    TimeSpan span = (value - new DateTime(1970, 1, 1, 0, 0, 0, 0));

    //return the total seconds (which is a UNIX timestamp)
    return Math.Round((double)span.TotalSeconds,2);
}

【问题讨论】:

  • 是的,它们只有几分之一秒。
  • Unix 时间戳是一个整数值,即自 1970 年以来的毫秒数。您的方法不应返回双精度值,而是返回 intlong。跨度>
  • @HansPassant 如果您将其作为答案,我会接受。

标签: c# unix-timestamp


【解决方案1】:

正如彼得所说,它们是几分之一秒,因为您调用 span.TotalSeconds。 1389200512.12 不是自纪元以来的毫秒数,而是自纪元以来的秒数。如果你想要毫秒,你应该调用 span.TotalMilliseconds

【讨论】:

    猜你喜欢
    • 2018-10-17
    • 2012-12-09
    • 1970-01-01
    • 2011-05-16
    • 2014-03-15
    • 2016-12-13
    • 2020-11-10
    • 2016-09-05
    • 1970-01-01
    相关资源
    最近更新 更多