博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Perl6的Epoch是Unix Epoch,不过有2个例外
阅读量:5809 次
发布时间:2019-06-18

本文共 1428 字,大约阅读时间需要 4 分钟。

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这个时间点的秒数。

例如

到Perl6

#!/usr/bin/perl6my $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:39say "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/perl6my $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

转载于:https://www.cnblogs.com/raybiolee/p/5634419.html

你可能感兴趣的文章
三、Android性能优化之常见的内存泄漏分析
查看>>
决战性能之巅 - Taro H5 转换与优化升级
查看>>
iOS逆向之旅(进阶篇) — 代码注入
查看>>
大数据的知识体系
查看>>
马云宣布传承计划,回归教育
查看>>
Python 比特币 教程 之一:创建机器人
查看>>
WinRAR存在严重的安全漏洞影响5亿用户
查看>>
JVM执行方法调用(一)- 重载与重写
查看>>
Mysql-InnoDB 锁学习
查看>>
https://geewu.gitbooks.io/rabbitmq-quick/content/RabbitMQ%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C.html
查看>>
Sharepoint MOSS stsadm常用命令汇总
查看>>
***RESTful API 设计指南(阮一峰)
查看>>
Mysql两张表相同ID匹配,输出到新表,删除旧表匹配
查看>>
正则表达式收集
查看>>
博客访问量暴涨的10条改良秘方
查看>>
img 样式单和属性
查看>>
感受JavaOne: 昔日风光何在?
查看>>
Junit (二) 断言
查看>>
部署自己的gitlab服务器
查看>>
如何取托盘窗口
查看>>