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


    由于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入门
    编码之Base64编码
    C++ 实现十大排序算法
    C++11 智能指针
    Object Pool 对象池的C++11使用(转)
    mac pro 1.5T内存是如何实现的
    Linux C/C++开发
    mac Chrome 快捷键
    C++11多线程
    Java项目压力测试(待补)
  • 原文地址:https://www.cnblogs.com/longdunxiong/p/14412047.html
Copyright © 2020-2023  润新知