1.相关概念
DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒)。函数
Unix时间戳:是从1970年1月1日(UTC/GMT的午夜)开始所通过的秒数,不考虑闰秒。code
1秒 = 1000毫秒变量
1毫秒 = 1000微妙date
1微秒 = 1000纳秒im
所以, 1毫秒 = 10000纳秒时间戳
2.DateTime变量与时间戳的相互转换
在实际使用中常常须要精确到毫秒,所以这里下面两个函数的使用单位都是“毫秒”,若要转换成“秒”,能够再除以或乘以1000。时间
///
/// 获取1970-01-01至dateTime的毫秒数
///
public long GetTimestamp(DateTime dateTime)
{
DateTime dt1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return (dateTime.Ticks - dt1970.Ticks) / 10000;
}
///
/// 根据时间戳timestamp(单位毫秒)计算日期
///
public DateTime NewDate(long timestamp)
{
DateTime dt1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0);
long t = dt1970.Ticks + timestamp * 10000;
return new DateTime(t);
}