日期与时间戳转换扩展

.net环境下转换


    /// <summary>
    /// 时间扩展
    /// </summary>
    public static class DateTimeExtension
    {
        /// <summary>
        /// 1970.1.1 UTC时间
        /// </summary>
        private static DateTime Jan1st1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

        /// <summary>
        /// 日期转换为时间戳(默认为13位毫秒时间戳)
        /// </summary>
        /// <param name="dateTime">日期</param>
        /// <param name="isMilli">是否毫秒</param>
        /// <returns></returns>
        public static long ConvertToTimeStamp(this DateTime dateTime, bool isMilli = true)
        {
            TimeSpan timeSpan = dateTime.AddHours(-8.0) - DateTimeExtension.Jan1st1970;
            return (long)(isMilli ? timeSpan.TotalMilliseconds : timeSpan.TotalSeconds);
        }

        /// <summary>
        /// 时间戳转换为日期(时间戳单位:默认毫秒)
        /// </summary>
        /// <param name="timeStamp">时间戳</param>
        /// <param name="isMilli">是否毫秒时间戳</param>
        /// <returns></returns>
        public static DateTime ConvertToDateTime(this long timeStamp, bool isMilli = true)
        {
            return (isMilli ? DateTimeExtension.Jan1st1970.AddMilliseconds((double)timeStamp) : DateTimeExtension.Jan1st1970.AddSeconds((double)timeStamp)).AddHours(8.0);
        }
    }

.net core环境下

 /// <summary>
    /// Datetime扩展
    /// </summary>
    public static class DateTimeExtension
    {
        /// <summary>
        /// 日期转换为时间戳(默认为13位毫秒时间戳) 
        /// </summary>
        /// <param name="dateTime">日期</param>
        /// <param name="isMilli">是否毫秒</param>
        /// <returns></returns>
        public static long ConvertToTimeStamp(this DateTime dateTime, bool isMilli = true)
        {
            return isMilli ? new DateTimeOffset(dateTime).ToUnixTimeMilliseconds()
                : new DateTimeOffset(dateTime).ToUnixTimeSeconds();
        }

        /// <summary>
        /// 时间戳转换为日期(时间戳单位:默认毫秒)
        /// </summary>
        /// <param name="timeStamp">时间戳</param>
        /// <param name="isMilli">是否毫秒时间戳</param>
        /// <returns></returns>
        public static DateTime ConvertToDateTime(this long timeStamp, bool isMilli = true)
        {
            return isMilli ? DateTimeOffset.FromUnixTimeMilliseconds(timeStamp).DateTime
                 : DateTimeOffset.FromUnixTimeSeconds(timeStamp).DateTime;
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容