zoukankan      html  css  js  c++  java
  • c# DateTime

    1.

    UTC Universal Time Coordinated 统一时间协调 ,GMT格林威治时间 可以认为UTC=GMT

    2.c# DateTime在实例化的时候如果为指定DateTimeKind,在转换的时候默认是要转换的Kind的对立。。

    3.在计算机中看到的UTC时间都是从(1970年01月01日 0:00:00)开始计算秒数的。

    所看到的UTC时间那就是从1970年这个时间点起到具体时间共有多少秒。 这个秒数就是Unix时间戳。

    4.所以Unix时间戳的计算一定要统一时间进行计算,比如计算本地时间2017-10-27 10:03的Unix时间戳,一种方式先把2017-10-27 10:03转换为UTC时间计算

    另一种把1970年01月01日 0:00:00对应成本地时间进行计算

    //如果DateTime在实例化的时候未指定DateTimeKind,转换为 UTCTime或者LocalTime的时候,默认是另一个格式
                //UTCTime和GMT是一致的,以秒为单位
                DateTime time = new DateTime(2017, 10, 27, 10, 3, 0);//2017-10-27 10:03
                Console.WriteLine(time.Kind);
                DateTime utcTime = time.ToUniversalTime();
                Console.WriteLine(utcTime);//{2017/10/27 2:03:00}
                DateTime localTime = time.ToLocalTime();  
                Console.WriteLine(localTime);//{2017/10/27 18:03:00}
    
                //计算本地时间2017-10-27 10:03 Unix时间戳  方法一:转换为UTC时间
                DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                long utcTickets = utcTime.Ticks - startTime.Ticks;
    
                //计算本地时间2017-10-27 10:03 Unix时间戳  方法一:转换为UTC时间
                DateTime startLocalTime = startTime.ToLocalTime();
                long localTickets = time.Ticks - startLocalTime.Ticks;
                Console.WriteLine(utcTickets == localTickets);
                //DateTime.Ticks是 计时周期,相当于100奈秒(1奈秒等于十亿分之一秒),转换成秒的时候要除以 10000000
                //unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
                long utcSeconds = utcTickets / 10000000; //1509069780 可以通过Unix时间戳站长工具验证
    
                //将Unix时间戳转换为本地时间
                DateTime tt = startTime.AddSeconds(utcSeconds).ToLocalTime();
                Console.WriteLine((tt == time) + ":" + tt);

     输出结果:

  • 相关阅读:
    CentOS 6.3 安装 phpmyadmin
    mysql 常用命令
    用PHP将Unicode 转化为UTF-8
    Angularjs通过$http与服务器通信
    话说Angularjs的$resource模块
    AngularCSS--关于angularjs动态加载css文件的方法(仅供参考)
    Angular-ui-router + oclazyload + requirejs实现资源随route懒加载
    移动前端开发之viewport的深入理解
    AngularJS的ng-class切换class
    AngularJS中如何对Controller与Service进行分层设计与编码
  • 原文地址:https://www.cnblogs.com/niuge/p/7742042.html
Copyright © 2011-2022 走看看