【问题标题】:Receive Unix Timestamp and convert time to milliseconds WP7接收 Unix 时间戳并将时间转换为毫秒 WP7
【发布时间】:2011-12-14 21:55:21
【问题描述】:

我在我的 wp7 应用程序中收到一个 unix 时间戳,我想将其转换为毫秒..

我做这个:

time.Ticks / 10000;

这是正确的吗?这给出了以毫秒为单位的总时间还是仅以毫秒为单位?

我想要以毫秒为单位的总时间..

我获取时间的方法是这样的:

void _ntpClient_TimeReceived(object sender, NtpClient.TimeReceivedEventArgs e)
{
    this.Dispatcher.BeginInvoke(() =>
    {
        DateTime time = e.CurrentTime;

        long milliseconds = time.Ticks / 10000;
    });
}

【问题讨论】:

  • 什么是time?如果你收到了一个 Unix 时间戳,大概你从 unix 纪元开始就得到了一个以秒为单位的整数?目前尚不清楚您有什么输入以及您希望输出是什么。
  • 如果我将 e.current 时间转换为字符串,我会得到如下信息:12/14/2011 10:48:46 PM
  • Unix时间通常是秒+纳秒,不清楚你有什么,因此无法回答如何转换它......
  • 我用这个例子来获取ntp时间:j2i.net/blogEngine/post/2011/08/07/…你能帮帮我吗?我不太了解代码..
  • 您引用的示例并不表示这是 Unix 时间。事实上,它返回一个DateTime。是什么让你认为这是 Unix 时代?

标签: windows-phone-7 unix timestamp


【解决方案1】:

Unix 通常将时间存储为秒或包含秒和微秒的struct timespec 以进一步提高精度。当提到日期时,它是自 1970 年 1 月 1 日以来经过的秒数(或秒数和微秒数)。

但是,这些从不称为“刻度”。 “滴答声”通常指的是 Windows/.NET 样式的时间单位——“滴答声”等于 100 纳秒。当提到日期时,它是自 0001 年 1 月 1 日以来经过的百纳秒单位数。

如果您有一个带有“刻度”的对象,那么是的,只需除以 10000 即可将单位转换为毫秒。或者,您可以使用TimeSpan

TimeSpan ts = new TimeSpan(ticks);
millis = ts.TotalMilliseconds;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-10
    • 2016-03-04
    • 2016-03-04
    • 2013-03-09
    • 2017-10-11
    • 2014-04-17
    相关资源
    最近更新 更多