C# .net 时间戳和时间转换 支持时区

 ///


        /// 本时区日期时间转时间戳
        ///

        /// 时间
        /// 是否精确到毫秒
        ///
        public static long ToUnixTimeStamp(this DateTime datetime, bool toMilliseconds = true)
        {
            DateTime beginTimeUtc = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);//标准时间
            DateTime timeUTC = datetime.ToUniversalTime();//转成标准时间
            TimeSpan ts = (timeUTC - beginTimeUtc);//当前标准时间减去标准起始时间
            if (toMilliseconds)
            {
                return (Int64)ts.TotalMilliseconds;//精确到毫秒
            }
            return (Int64)ts.TotalSeconds;//精确到秒
        }

        ///


        /// 时间戳转本时区日期时间
        ///

        ///
        /// 是否精确到毫秒
        ///
        public static DateTime ToDateTime( this long TimeStamp, bool toMilliseconds = true)
        {
            DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);//标准时间
            if (toMilliseconds)
            {
                return startTime.AddTicks(TimeStamp * 10000).ToLocalTime();//标准时间转本地时间
            }
            else
            {
                return startTime.AddTicks(TimeStamp * 10000000).ToLocalTime();//标准时间转本地时间
            }
        }

你可能感兴趣的:(C#基础,工具类,.netcore)