首页 > Web开发 > 详细

.net core 使用TimeZoneInfo类的时间与时间戳转换

时间:2021-02-18 16:46:15      阅读:465      评论:0      收藏:0      [点我收藏+]

由于TimeZone类已经过时,官方推荐使用TimeZoneInfo来做时间的转换。

1、时间转换成时间戳

        /// <summary>
        /// 将c# DateTime时间格式转换为Unix时间戳格式
        /// </summary>
        /// <param name="time">时间</param>
        /// <returns>double</returns>
        private static double ConvertDateTimeInt(DateTime time)
        {
            DateTime dd = new DateTime(1970, 1, 1, 0, 0, 0, 0);
            TimeSpan ts = (time - dd);
            return (Int64)ts.TotalMilliseconds;
        }

2、时间戳转换成时间(时间戳类型为string)

        /// <summary>        
        /// 时间戳转为C#格式时间        
        /// </summary>        
        /// <param name=”timeStamp”></param>        
        /// <returns></returns>        
        public static DateTime ConvertStringToDateTime(string timeStamp)
        {
            DateTime dtStart = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc), TimeZoneInfo.Local);
            long lTime = long.Parse(timeStamp + "0000");
            TimeSpan toNow = new TimeSpan(lTime);
            return dtStart.Add(toNow);
        }

注意在new DateTime时需要添加DateTimeKind.Utc,否则转出来的时间会少8个小时。

.net core 使用TimeZoneInfo类的时间与时间戳转换

原文:https://www.cnblogs.com/longdunxiong/p/14412047.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!