zoukankan      html  css  js  c++  java
  • Perl6的Epoch是Unix Epoch,不过有2个例外

    Perl6中提供了全面的时间日期对象

    • Instant类表示一个时间点,是用数字表示的,
      继承Cool类和Real(实数)角色,是数值,相对于Epoch的时间
    • Duration类表示时间段,从一个时间点到另外一个时间点之间的秒数,
      继承Cool类和Real(实数)角色
    • Date类是日期(年、月、日)
    • DateTime类是时间,相对Instant就有时区的描述,(年月日,时分秒)
    • DateDateTime都继承Dateish

    PHP,Python,Perl5,javascript用的都是 Unix Epoch(1970年1月1日,00:00:00 GMT这个时间点),Perl6也是。
    不过有几处需要注意,Date.daycount 方法和使用 Date.now.Instant/(3600*24) 得到的天数不同。
    前者是基于Modified Julian Epoch(MJD,是1858年11月17日,00:00:00 GMT这个时间点),后者是Unix Epoch,差了一个多世纪。

    需要注意,

    1. Instant类的对象是实数(小数和整数),它的秒数都是基于Unix Epoch的,不同的语言之间一样;
    2. Date的方法.daycount是使用MJD的,Dateish角色的.new_from_daycount方法也是,不过也不常用;

    PHP中的time()返回的是现在距离1970年1月1日,00:00:00 GMT这个时间点的秒数。
    例如

    <?php
        echo time(); # gets 1467383079 也就是 07,01,2016-22:24:39
    ?>
    

    到Perl6

    #!/usr/bin/perl6
    my $fmtr = sub ($self) {
       sprintf "%02d,%02d,%04d-%02d:%02d:%02d", .month, .day, .year, .hour, .minute, .whole-second given $self;
    }
    my $d = new DateTime(1467383079,timezone => 3600 * 8, formatter => $fmtr);
    # 时区:东八区
    say $d.Str;
    # gets
    # 07,01,2016-22:24:39
    say "Seconds off Unix Epoch:" ~ $d.Instant;
    say "Days off Unix Epoch:" ~ $d.Instant/(3600*24);
    say "Days off Julian Epoch:" ~ $d.daycount;
    # gets
    # Seconds off Unix Epoch:Instant:1467383115
    # Days off Unix Epoch:16983.6008680556
    # Days off Julian Epoch:57570
    

    所以,

    #!/usr/bin/perl6
    my $julian-epoch = Date.new-from-daycount(0);
    my $unix-epoch   = Date.new(year=>1970,month=>1,day=>1);
    # MJD和Unix Epoch差的天数
    say "MJD和Unix Epoch差的天数:" ~ $unix-epoch.daycount;
    # MJD和Unix Epoch差的天数:40587
  • 相关阅读:
    druid-1.0.13 数据库配置文件密码加密
    PostConstruct注解
    easyui formatter 返回easyui组件
    小师妹问 easyUI mergeCells 行合并后表头和内容对不齐
    Java Split以竖线作为分隔符
    Integer比较值的时候小心使用
    js 关键字 in
    Asp.net中防止用户多次登录的方法
    C#取得站点跟目录
    解读支付宝接口实现步骤
  • 原文地址:https://www.cnblogs.com/raybiolee/p/5634419.html
Copyright © 2011-2022 走看看