zoukankan      html  css  js  c++  java
  • UNIX时间戳

    UNIX时间戳 其实是现在的时间到伦敦时间1970-01-01 00:00:00 秒的时间时间, 我们是在东8区,当时的北京时间是1970-01-01 08:00:00

    所以:

    Unix时间戳 = 我们当前的时间 Date.Now - 我们这个时区的当时那个时间,也就是 1970-01-01 08:00:00  

    所以是: TimeSpan ts = DateTime.Now- TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));

    后面是过的1970-1-1我们这个时区的时间,也就是1970-01-01 08:00:00  

    附录:源码:  或者是,将当前时间转化为伦敦时间

    Convert.ToInt32((time.ToUniversalTime() - new DateTime(1970,1,1)).TotalSeconds);

    在js中可以这样得到这个事件:

    parseInt(date.getTime() / 1000);

    而这个事件时有误的: 这个会多了8个小时的时间

    parseInt((new Date() - new Date(1970,0,1)) / 1000)

    而这样是正确的:

    parseInt((new Date() - new Date(0)) / 1000)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
                    
    namespace QDTravel.TCApi
    {
        public class DateTimeHelper
        {
            #region 私有构造函数,防止被实例化。
            /// <summary>
            /// 初始化 <see cref="DateTimeHelper"/> 类的新实例。
            /// </summary>
            private DateTimeHelper()
            {
                    
            }
            #endregion
                    
            #region 将时间转换成UNIX时间戳。[GetStamp(DateTime time)]
            /// <summary>
            /// 将时间转换成UNIX时间戳。
            /// </summary>
            /// <param name="dt">时间。</param>
            /// <returns>UNIX时间戳。</returns>
            public static UInt32 GetStamp(DateTime time)
            {
                if (time <= DateTime.MinValue)
                    time = new DateTime(1990, 1, 1);
                TimeSpan ts = time - TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
                UInt32 uiStamp = Convert.ToUInt32(ts.TotalSeconds);
                return uiStamp;
            }
            #endregion
                    
            #region 将当前时间转换成UNIX时间戳。[GetStamp()]
            /// <summary>
            /// 将当前时间转换成UNIX时间戳。
            /// </summary>
            /// <returns>UNIX时间戳。</returns>
            public static UInt32 GetStamp()
            {
                return GetStamp(DateTime.Now);
            }
            #endregion
                    
            #region 将UNIX时间戳转换成时间。[GetDateTime(UInt32 uiStamp)]
            /// <summary>
            /// 将UNIX时间戳转换成时间。
            /// </summary>
            /// <param name="uiStamp">UNIX时间戳。</param>
            /// <returns>时间。</returns>
            public static DateTime GetDateTime(UInt32 uiStamp)
            {
                DateTime dt = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)).AddSeconds(uiStamp);
                return dt;
            }
            #endregion
                    
                    
        }
    }
  • 相关阅读:
    一些点子的梳理
    网络安全解决方案
    流量劫持技术
    运营商DNS系统安全解决方案
    安卓工作室 设置每次启动 选择项目,不直接打开项目
    多臂机测试, AB测试
    vue 入门
    web开发 入门
    C# .NET 使用第三方类库DotNetZip解压/压缩Zip文件
    Linq 101 工具和源码
  • 原文地址:https://www.cnblogs.com/zhanhengzong/p/3035317.html
Copyright © 2011-2022 走看看