zoukankan      html  css  js  c++  java
  • .NET / C# 时间与时间戳的转换

    时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。
    我们在计算时间戳时应为1970年01月01日到指定时间。
    应当注意世界时间与本地时间的区别,不然结果可能存在偏差。
    PS:以下示例代码返回时间戳均为13位(故被转换的时间戳同为13位,13位结果即总毫秒数不同需求请自觉转换)。
    在某些情况下会出现时间戳显示结果与预期结果略有偏差,合理运用本地时间与世界时间的偏移量即可解决。
          /// <summary>
            /// 获取本地时间的世界时间戳
            /// </summary>
            /// <returns></returns>
            public long GetNowTimeStamp()
            {
                var TimeStamps = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
                return TimeStamps;
            }
            /// <summary>
            /// 将时间转换为时间戳
            /// </summary>
            /// <param name="dateTime"></param>
            /// <returns></returns>
            public long ToTimeStamp(DateTime dateTime)
            {
                var TimeStamps = (dateTime.Ticks - 621355968000000000) / 10000000;
                return TimeStamps;
            }
            /// <summary>
            /// 获取本地时间的世界时间的偏移量
            /// </summary>
            /// <returns></returns>
            public long GetUtcOffsets()
            {
                var UtcOffsets = TimeZone.CurrentTimeZone.GetUtcOffset(new DateTime()).Ticks / 10000;
                return UtcOffsets;
            }
    
            /// <summary>
            /// 将时间戳转换为时间
            /// </summary>
            /// <returns></returns>
            public DateTime ToDateTime(long TimeStamps)
            {
                var date = new DateTime(1970, 1, 1).AddMilliseconds(TimeStamps);
                //new DateTime().AddMilliseconds(621355968000000000/10000).AddMilliseconds(TimeStamps);//效果同上
                return date;
            }
  • 相关阅读:
    004.Jquery库的用法
    update 死锁问题
    Nginx负载均衡模式
    微信公众号开启服务器配置 JAVA
    mybatis plus + AOP 多数据源自动切换
    mybatis plus 快速上手
    mybits 笔记
    java 异步
    node 垃圾回收机制
    常用正则
  • 原文地址:https://www.cnblogs.com/xianyv/p/11556161.html
Copyright © 2011-2022 走看看