zoukankan      html  css  js  c++  java
  • C# 时间戳(TimeStamp)与时间(DateTime)的互相转换

      什么是时间戳:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

      时间戳在线转换网址:https://tool.lu/timestamp,时间戳的转换网址有很多,经常用的还有站长工具。

    下附代码,在控制台中粘贴在启动类即可使用,需引用(using System)命名空间 ;

    /// <summary>
    /// 取时间戳,高并发情况下会有重复。想要解决这问题请使用sleep线程睡眠1毫秒。
    /// </summary>
    /// <param name="AccurateToMilliseconds">精确到毫秒</param>
    /// <returns>返回一个长整数时间戳</returns>
    public static long GetTimeStamp(bool AccurateToMilliseconds = false)
    {
    if (AccurateToMilliseconds)
    {
    
    // 使用当前时间计时周期数(636662920472315179)减去1970年01月01日计时周期数(621355968000000000)除去(删掉)后面4位计数(后四位计时单位小于毫秒,快到不要不要)再取整(去小数点)。
    
    //备注:DateTime.Now.ToUniversalTime不能缩写成DateTime.Now.Ticks,会有好几个小时的误差。
    
    //621355968000000000计算方法 long ticks = (new DateTime(1970, 1, 1, 8, 0, 0)).ToUniversalTime().Ticks;
    
    return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000; 
    
    }
    else
    {
    
    //上面是精确到毫秒,需要在最后除去(10000),这里只精确到秒,只要在10000后面加三个0即可(1秒等于1000毫米)。
    return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
    }
    }

    /// <summary>
    /// 时间戳反转为时间,有很多中翻转方法,但是,请不要使用过字符串(string)进行操作,大家都知道字符串会很慢!
    /// </summary>
    /// <param name="TimeStamp">时间戳</param>
    /// <param name="AccurateToMilliseconds">是否精确到毫秒</param>
    /// <returns>返回一个日期时间</returns>
    public static DateTime GetTime(long TimeStamp, bool AccurateToMilliseconds = false)
    {
    System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
    if (AccurateToMilliseconds)
    {
    return startTime.AddTicks(TimeStamp * 10000);
    }
    else
    {
    return startTime.AddTicks(TimeStamp * 10000000);
    }
    }
  • 相关阅读:
    unix改变shell显示颜色
    实习三个月的地一个完整项目总结
    Can&#39;t open named pipe to host: . pipe: MySQL
    OpenGL 与 GLSL 版本号
    牛腩新闻系统(二)——原型图、数据库文档
    【Android开发学习之路】
    JAVA多线程的问题以及处理【转】
    Class.forName的作用以及为什么要用它【转】
    java的集合类【转】
    JAVA的包装类 【转】
  • 原文地址:https://www.cnblogs.com/wrlooo/p/12383439.html
Copyright © 2011-2022 走看看