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:
| 属性 | 类型 | 说明 |
|---|---|---|
year | Number | 年份(UTC) |
month | Number | 月份(1-12) |
day | Number | 日期(1-31) |
hour | Number | 小时(0-23) |
minute | Number | 分钟(0-59) |
second | Number | 秒(0-59) |
millisecond | Number | 毫秒(0-999) |
weekday | Number | 星期几(1=周日, 2=周一, ..., 7=周六) |
timestamp | Number | Unix 时间戳(毫秒) |
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 |