以前遇到时间戳,都是那公共类里面的方法来用。未曾理解过它的原理。
C# 时间类型枚举
    分为local、utc、以及Unspecified
local:当地时间,例如我们所在的东八区,所采用的北京时间。
utc(Coordinated Universal Time):世界标准时间(可自行深入)。
 
10位 时间戳是指格林威治时间1970年1月1日00时00分00秒(北京时间1970年1月1日08时00分00秒)起至现在的总秒数。
13位 时间戳是指格林威治时间1970年1月1日00时00分00秒(北京时间1970年1月1日08时00分00秒)起至现在的总毫秒数。
 
    10位 时间戳转为时间格式,即 格林威治时间1970年1月1日00时00分00秒 基础(毫单位)加上  时间戳。
    13位 时间戳转为时间格式,即 在格林威治时间1970年1月1日00时00分00秒 基础(毫秒单位)加上  时间戳。
 
    附代码:
    
        /// <summary>  
        /// 获取当前时间的时间戳(13位)  
        /// </summary>  
        /// <returns></returns>  
        public static long GetTimeStamp()
        {
            TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
            return Convert.ToInt64(ts.TotalMilliseconds);
        }
 
        /// <summary> 
        /// 获取当前时间的时间戳(10位)
        /// </summary> 
        /// <returns></returns> 
        public static long GetTimeStampTen()
        {
            return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
        }
 
        /// <summary>
        /// 将13位 时间戳转换为日期类型
        /// </summary>
        /// <param name="longDateTime"></param>
        /// <returns></returns>
        public static DateTime LongDateTimeToDateTimeString(long unixDate)
        {
            DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            dateTime = dateTime.AddMilliseconds(unixDate).ToLocalTime();
            return dateTime;
        }
 
        /// <summary>
        /// 将10位 时间戳转换为日期类型
        /// </summary>
        /// <param name="longDateTime"></param>
        /// <returns></returns>
        public static DateTime LongDateTimeToDateTimeString(long unixDate)
        {
            DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            dateTime = dateTime.AddSeconds(unixDate).ToLocalTime();
            return dateTime;
        }