[.NET][C#] C#中的时间戳

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年1月1日0时0分0秒(北京时间1970年1月1日8时0分0秒)起至现在的总秒数。

C# 中的 1Tick 是100纳秒(ns)

  • 1秒(s) = 1000毫秒(ms)
  • 1毫秒(ms) = 1000微秒(μs)
  • 1微秒(μs) = 1000纳秒(ns)
  • 1秒(s) = 10000000 Ticks 
  • 1毫秒(ms) = 10000 Ticks

DateTime.Now.Ticks 是公元 1年1月1日0时0分0秒 至当前时区时间的 Tick 数,DateTime.UtcNow.Ticks 是公元 1年1月1日0时0分0秒 至格林威治时间(UTC +0)的 Tick 数。

获取时间戳的方式为

(long)(DateTime.UtcNow - DateTime.UnixEpoch).TotalMilliseconds
(DateTime.UtcNow.Ticks - 621355968000000000) / 10000000

 621355968000000000 是 1年1月1日0时0分0秒 至 1970年1月1日0时0分0秒 的 Tick 数,除以10000000是将 Tick 装换为秒。

将时间戳转换为格林威治时间(UTC +0) DateTime 的方法为:
new DateTime(timeStamp * 10000).AddTicks(DateTime.UnixEpoch.Ticks)
new DateTime(timeStamp * 10000000 + 621355968000000000)

将时间戳转换为本地时间的方法为

new DateTime(timeStamp * 10000000 + 621355968000000000).ToLocalTime()
  • 添加到短语集
     
    • 万维网
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 万维网
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 万维网
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 万维网
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 万维网
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 万维网
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 万维网
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 万维网
    • 创建新的单词集...
  • 拷贝
  • 添加到短语集
     
    • 万维网
    • 创建新的单词集...
  • 拷贝
posted @ 2020-02-10 15:14  Hsiung  阅读(1017)  评论(0)    收藏  举报