loyung

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1970年1月1日(00:00:00 GMT)Unix 时间戳(Unix Timestamp)对时间转换

将Long类型转换为DateTime类型,时间戳为毫秒的转换

        /// <summary>
        /// 将Long类型转换为DateTime类型
        /// </summary>
        /// <param name="d">long</param>
        /// <returns></returns>
        public static DateTime ConvertLongDateTime(long ticks)
        {
            DateTime dtBase = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            DateTime convertTime = dtBase.Add(new TimeSpan(ticks * TimeSpan.TicksPerMillisecond)).ToLocalTime();
            return convertTime;
        }

 

时间戳以秒为单位的转换

        /// <summary>
        /// 将Long类型转换为DateTime类型
        /// </summary>
        /// <param name="d">long</param>
        /// <returns></returns>
        public static DateTime ConvertLongDateTime(long ticks)
        {
            DateTime dtBase = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            DateTime convertTime = dtBase.Add(new TimeSpan(ticks * TimeSpan.TicksPerSecond)).ToLocalTime();
            return convertTime;
        }

 

 

  将DateTime类型转换为long类型

        /// <summary>
        /// 将DateTime类型转换为long类型
        /// </summary>
        /// <param name="dt">时间</param>
        /// <returns></returns>
        public static long ConvertDataTimeLong(DateTime dt)
        {
            DateTime dtBase = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            TimeSpan toNow = dt.ToUniversalTime().Subtract(dtBase);
            long timeStamp = toNow.Ticks/10000000;
            return timeStamp;
        }

 

用C#转出的结果如果是new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc),因为精度问题需要/10000 获取以毫秒精度的时间戳 /10000000获取以秒为精度的时间戳

posted on 2015-03-29 20:01  loyung  阅读(1684)  评论(0编辑  收藏  举报