Backup: Date and Time in Perl6

时间

Date

#Operators
==, <, <= , >, >=, !=, eq, lt, le
# Methods
$date = Date.new(YEAR, MONTH, DAY, FORMATTER?)
$date = Date.new(year => YEAR, month => MONTH?, day => DAY?,FORMATTER?)
$date = Date.new(YYYY-MM-DD,FORMATTER?) $date = Date.new(now,FORMATTER?)
$date = Date.new(DateTime.now,FORMATTER?)
#字符串,Pair,Positional 都可以指定日期
.today(:&formatter)
#返回 Date object,并不是字符串,.today.Str
.later(DELTA)
.earlier(DELTA)
Date.new('2015-12-24').later(:2years).later(days => 2)
#DELTA单位可以是 day(s), week(s), month(s), year(s)
#也可以使用 Pair
#几天/年/月/周 之后或之前
.truncated-to(UNIT)
# UNIT 可以是 year,month,week
#截取时间到当前 year 的第一天,当前 month 的第一天,当前 week 的第一天
#------
.succ .pred #自加一天,自减一天
.Str .gist #都是YYYY-MM-DD格式的字符串
#########
# Subroutine/Functions
sleep($seconds)
#sleep 多少秒,可以不是整数
sleep-timer($seconds)
#返回中断时距离结束还剩多少秒,返回 Duration 类型
sleep-until($until)
#

DateTime

DateTime.new(Y, m, d, H, M, S,
TZ?, :&formatter)
DateTime.new(DateObj, H, M, S, TZ?,
:&formatter)
DateTime.new(year=>Y, month=>m, day=>d, hour=>H, minute=>M, second=>S, timezone=>TZ, :&formatter)
DateTime.new(INSTANT, TZ?, :&formatter)
DateTime.new(TIMESTAMP, TZ?, :&formatter)
DateTime.new(FORMAT, TZ?, :&formatter)
#和 Date 基本一样,字符串,Pair,Positional 都可以指定日期时间
# 字符串格式:yyyy-mm-ddThh:mm::ssZ yyyy-mm-ddThh:mm:ss+0100
.now(TZ?,:&formatter)
#返回 DateTime object
.clone()
#可以对 year,month,day,hour,minute,second,tz,formatter 进行修改返回
#格式和 .new 一样,也可以用 Pair
#getter
.hour .minute .second .whole-second .timezone
.offset .offset-in-minutes .offset-in-hours
.posix($ignore-timezone) #seconds since the Epoch
#下面的和 Date 一样
.later(*%unit)
.earlier(*%unit)
.trauncated-to($unit)
#格式转换
.Str #返回的格式根据 formatter 变
.Instant
.Date
.utc #时区更改成 UTC,time 相应改变
.local #时区更改为$*TZ(本地时区)

Dateish

#getter
.year .month .day .day-of-month .formatter
.is-leap-year
.day-of-week #1 Monday 7 Sunday
.day-of-year
.days-in-month(year?,month?) #一个月的天数
.week #返回 year,weekNumber List
.week-number # 1-53
.week-year #按 week 分,多的天算给前一年或下一年的那一周
.weekday-of-month #这个月的第几个星期几
.yyyy-mm-dd #和 Str 功能一样,不过格式固定了

Duration

其实就是个 数,is Cool does Real

这样 Real 以及 Real的父类 Numeric 的方法都可以用

#表示时间间隔,秒
#当作数字时,返回 Rat/FatRat 数据类型

Instant

其实就是个 数,is Cool does Real

这样 Real 以及 Real的父类 Numeric 的方法都可以用

#用秒表示特定的时刻,可以有小数
#2个 Instant 相减得到 Duration
#Instant 加 Duration 还是Instant
.from-posix($posix, $prefer-leap-second)
#第二个参数是是否考虑闰秒;如果 True,则闰秒不考虑
.to-posix
#和 from-posix 刚好相反,返回 POSIX timestamp, True/False List
上一篇:Bootstrap-17


下一篇:十天学Linux内核之第十天---总结篇(kconfig和Makefile & 讲不出再见)