Skip to main content
当前模块负责时间相关的获取与运算功能。 引用前需在脚本顶部导入命名空间:
import 'fs:time'
fs:time 内使用 @Export 修饰的 Java 方法会自动去掉 Getter 前缀,因此 getNow() 在脚本中以 time::now() 访问。

基础时间值

函数签名说明
nownow()全局函数,返回 System.currentTimeMillis()
time::now()time::now()now(),提供链式上下文时的写法。
time::nowSeconds()time::nowSeconds()当前秒级 Unix 时间戳。
time::nano()time::nano()用于测量耗时,返回 System.nanoTime()
current = now()
如果只使用 now(),无需导入 fs:time

格式化与解析

函数签名说明
formatDateTimetime::formatDateTime(pattern?)SimpleDateFormat 模式格式化当前时间,默认 yyyy-MM-dd HH:mm:ss
formatTimestamptime::formatTimestamp(timestamp,pattern?)将任意毫秒时间戳格式化为字符串。
parseDateTimetime::parseDateTime(text,pattern)解析给定格式的时间文本,返回毫秒时间戳,解析失败抛异常。
formatted = time::formatTimestamp(&current, 'yyyy/MM/dd HH:mm:ss')

当前时间各组件

函数返回说明
yearint当年。
monthint月份(1-12)。
dayint日期。
hourint24 小时制小时。
minuteint分钟。
secondint秒。
weekdayintCalendar.DAY_OF_WEEK 值(1=周日,7=周六)。
currentYear = time::year()

指定时间戳的组件

函数签名说明
yearFromTimestamptime::yearFromTimestamp(ts)以毫秒时间戳求年份。
monthFromTimestamptime::monthFromTimestamp(ts)返回月份(1-12)。
dayFromTimestamptime::dayFromTimestamp(ts)返回日期。
hourFromTimestamptime::hourFromTimestamp(ts)提取小时。
minuteFromTimestamptime::minuteFromTimestamp(ts)提取分钟。
secondFromTimestamptime::secondFromTimestamp(ts)提取秒。

时间运算

函数签名说明
addDaystime::addDays(ts, days)累加天数。
addHourstime::addHours(ts, hours)累加小时。
addMinutestime::addMinutes(ts, minutes)累加分钟。
addSecondstime::addSeconds(ts, seconds)累加秒。
daysBetweentime::daysBetween(ts1, ts2)计算天数差值。
hoursBetweentime::hoursBetween(ts1, ts2)计算小时差值。
minutesBetweentime::minutesBetween(ts1, ts2)计算分钟差值。
secondsBetweentime::secondsBetween(ts1, ts2)计算秒差值。

时间比较与边界

函数说明
isTodaytime::isToday(ts)判断指定时间戳是否为今天。
isYesterdaytime::isYesterday(ts)判断指定时间戳是否为昨天。
isTomorrowtime::isTomorrow(ts)判断指定时间戳是否为明天。
isBetweentime::isBetween(ts, start, end)判断时间戳是否落在闭区间 [start, end]
startOfDaytime::startOfDay(ts)时间戳归一化到当天 00:00:00.000。
endOfDaytime::endOfDay(ts)时间戳归一化到当天 23:59:59.999。
startOfMonthtime::startOfMonth(ts)月初边界。
endOfMonthtime::endOfMonth(ts)月末边界。
startOfYeartime::startOfYear(ts)年初边界。
endOfYeartime::endOfYear(ts)年末边界。

示例:生成定时窗口

import 'fs:time'

nowTs = now()
windowStart = time::startOfDay(&nowTs)
windowEnd = time::endOfDay(&nowTs)

if time::isBetween(&nowTs, &windowStart, &windowEnd) {
    print('still today: ' + time::formatTimestamp(&nowTs))
}
这些时间函数均基于 Calendar,自动采用宿主 JVM 的默认时区与地区设定。

相关链接