跳到主要内容

Date 日期类

Date 是 Alia 的内置日期时间类,用于表示和处理日期时间数据。基于 UTC 时间。

创建 Date​

无参数(当前时间)​

const now = new Date

从字符串创建​

const d = new Date ['2024-06-15']
const d2 = new Date ['2024-06-15 14:30:45']

支持格式:YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss

从对象创建​

const d = new Date [*[year: 2024, month: 6, day: 15, hour: 14, minute: 30, second: 45, millisecond: 500]]

可用字段:year, month, day, hour, minute, second, millisecond

从时间戳创建​

const d = new Date [1700000000000]

从数组创建​

const arr = ['2024-06-15']
const d = new Date [arr]

数组的第一个元素为日期字符串或时间戳,取该元素解析为日期。

实例属性​

所有属性均为只读 getter:

属性类型说明
yearNumber年份(UTC)
monthNumber月份(1-12)
dayNumber日期(1-31)
hourNumber小时(0-23)
minuteNumber分钟(0-59)
secondNumber秒(0-59)
millisecondNumber毫秒(0-999)
weekdayNumber星期几(1=周日, 2=周一, ..., 7=周六)
timestampNumberUnix 时间戳(毫秒)
const d = new Date ['2024-06-15 14:30:45']
print d.year ~ 2024
print d.month ~ 6
print d.day ~ 15
print d.hour ~ 14
print d.minute ~ 30
print d.second ~ 45
print d.weekday ~ 7

实例方法​

addTime​

返回一个新的 Date,加上指定的时间量。

const d = new Date ['2024-01-10']
const d2 = d.addTime 5 in Date.Days
print d2.day ~ 15

subTime​

返回一个新的 Date,减去指定的时间量。

const d = new Date ['2024-01-20']
const d2 = d.subTime 5 in Date.Days
print d2.day ~ 15

diffTime​

计算与另一个 Date 的差值,返回 Number。

const d1 = new Date ['2024-01-20']
const d2 = new Date ['2024-01-10']
const diff = d1.diffTime d2 in Date.Days
print diff ~ 10

toFormat​

将 Date 格式化为字符串。

const d = new Date ['2024-01-15 09:05:03']
print d.toFormat 'YYYY-MM-DD' ~ '2024-01-15'
print d.toFormat 'YYYY/MM/DD HH:mm:ss' ~ '2024/01/15 09:05:03'
const dMs = new Date [*[year: 2024, month: 1, day: 15, hour: 9, minute: 5, second: 3, millisecond: 123]]
print dMs.toFormat 'HH:mm:ss.SSS' ~ '09:05:03.123'

isBefore / isAfter / isSame​

比较两个 Date。

const d1 = new Date ['2024-01-10']
const d2 = new Date ['2024-01-20']
print d1.isBefore d2 ~ true
print d1.isAfter d2 ~ false
print d1.isSame d1 ~ true

isLeapYear​

判断是否闰年。无参数方法经由 call 调用,返回 Boolean。

const d = new Date ['2024-01-01']
print call d.isLeapYear ~ true

daysInMonth​

获取当月天数。无参数方法经由 call 调用,返回 Number。

const d = new Date ['2024-02-01']
print call d.daysInMonth ~ 29

时间单位常量​

常量值
Date.Years'Year'
Date.Months'Month'
Date.Weeks'Week'
Date.Days'Day'
Date.Hours'Hour'
Date.Minutes'Minute'
Date.Seconds'Second'
Date.Milliseconds'Millisecond'
const d = new Date ['2024-01-10']
const d2 = d.addTime 3 in Date.Months
const diff = d2.diffTime d in Date.Days

静态方法​

Date.now​

获取当前时间戳。无参数方法经由 call 调用,返回 Number。

const ts = call Date.now

Date.parseDate​

从字符串解析日期。

const d = Date.parseDate '2024-06-15'
print d.year ~ 2024

Date.fromTimestamp​

从时间戳创建 Date。

const d = Date.fromTimestamp 1700000000000

Date.fromParts​

从各部分创建 Date。year 与 month 为必填关键字,day、hour、minute、second、millisecond 为可选关键字。

const d = Date.fromParts year 2024 month 6 day 15 hour 14 minute 30 second 45

Date.leapYear​

判断指定年份是否闰年。

print Date.leapYear 2024 ~ true
print Date.leapYear 2023 ~ false

Date.daysInMonthStatic​

获取指定年月的天数。

print Date.daysInMonthStatic year 2024 month 2 ~ 29

格式化模式​

Token说明示例
YYYY四位年份2024
MM两位月份01
DD两位日期15
HH两位小时09
mm两位分钟05
ss两位秒数03
SSS三位毫秒123
WW星期数字2
DDname星期名称Monday
OO月份名称January