zoukankan      html  css  js  c++  java
  • js gettime c# ticks

    js的gettime

    定义和用法
    getTime() 方法可返回距 1970 年 1 月 1 日之间的毫秒数。


    C#中的ticks
    此属性的值表示自 0001 年 1 月 1 日午夜 12:00:00以来经过的以 100 纳秒为间隔的间隔数。


    对几个词来说明一下,纳秒也叫毫微秒,相互之前的转换关系是

    1秒   = 10^3 毫秒
    1毫秒 = 10^3 微秒
    1微秒 = 10^3 纳秒


    现在要用c#做出这种js 的gettimer的效果,首先要转换成统一的单位,我们以转成百纳秒为单位

    然后做到的就是统一的时间取得点,以 1970 年 1 月 1 日 为起点,这时就要算出来,从0001 年 1 月 1 日到1970 年 1 月 1 日经过了多少纳秒
    可以通过以下代码得知一个常量private long lLeft = 621355968000000000;
    Console.WriteLine (DateTime.Parse("1970-1-1").Ticks);

    比如我现在要得到"2009-7-15 08:33:19"的毫秒数
    首先转成UTC时间
    DateTime dt1 = Convert.ToDateTime("2009-7-15 08:33:19").ToUniversalTime ();

    然后得到从 1970 年 1 月 1 日到刚才那个时间的百纳秒数
    long Sticks = (dt1.Ticks - DateTime.Parse("1970-1-1").Ticks)

    最后因为要转成js的效果,所以把百纳秒转成毫秒,Sticks/10000000; 最后得到的结果是1247617999

    同理把这个毫秒数转成本地时间就返过来推,北京与utc是相差8个小时的,所以最后用ToLocalTime 转成本地时间就可以解决时差问题了。

    以下是代码


    private  long lLeft = 621355968000000000;

            //将数字变成时间
            public   string GetTimeFromInt(long ltime)
             {

                long Eticks = (long)(ltime * 10000000) + lLeft;
                 DateTime dt = new DateTime(Eticks).ToLocalTime();
                return dt.ToString();

             }

            //将时间变成数字
            public   long GetIntFromTime(DateTime dt)
             {
                 DateTime dt1 = dt.ToUniversalTime();
                long Sticks = (dt1.Ticks - lLeft) / 10000000;
                return Sticks;

             }

  • 相关阅读:
    Android 应用开发耗电量控制。。
    android优化从网络中加载图片速度。。
    SpringMVC 配置多视图解析器(velocity,jsp)
    linux mysql定时备份并压缩
    linux mysql定时备份并压缩
    mysql选择上一条、下一条数据记录,排序上移、下移、置顶
    MIT-CBCL Car Database 车辆训练数据集
    两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
    js实现ArrayList功能
    JXL.jar简单封装Excel读写操作
  • 原文地址:https://www.cnblogs.com/jordan2009/p/1547879.html
Copyright © 2011-2022 走看看