Appearance
time — 时间工具
time 模块提供了时间操作功能,包括时间获取、格式化、计算、比较、时区处理等。
引入方式
javascript
var time = require("time")获取当前时间
javascript
time.Now() // "2024-01-15T10:30:00+08:00" (RFC3339)
time.NowUnix() // 1705285800 (秒)
time.NowUnixMilli() // 1705285800000 (毫秒)
time.NowUnixMicro() // 1705285800000000 (微秒)
time.NowUnixNano() // 1705285800000000000 (纳秒)格式化与解析
Format — 格式化时间
javascript
var t = time.Now()
time.Format(t, "2006-01-02 15:04:05") // "2024-01-15 10:30:00"
time.Format(t, "2006年01月02日") // "2024年01月15日"Go 时间格式化
Go 语言使用参考时间 2006-01-02 15:04:05 作为格式化模板,不是 YYYY-MM-DD。
Parse — 解析时间字符串
javascript
var t = time.Parse("2024-01-15 10:30:00", "2006-01-02 15:04:05")ParseUnix — Unix 时间戳转 Time
javascript
var t = time.ParseUnix(1705285800)
var t2 = time.ParseUnixMilli(1705285800000)时间计算
javascript
var now = time.Now()
// 增加时间
var tomorrow = time.AddDuration(now, 1, 0, 0) // 加 1 年
// 时间差
var diff = time.Sub(tomorrow, now) // 时间差
time.SubSeconds(tomorrow, now) // 秒差
time.SubMinutes(tomorrow, now) // 分差
time.SubHours(tomorrow, now) // 时差时间比较
javascript
var t1 = time.Now()
var t2 = time.Parse("2024-06-01 00:00:00", "2006-01-02 15:04:05")
time.After(t2, t1) // t2 是否在 t1 之后
time.Before(t1, t2) // t1 是否在 t2 之前
time.Equal(t1, t1) // 是否相等
time.Between(t1, t1, t2) // t1 是否在范围内日期判断
javascript
var t = time.Now()
time.IsToday(t) // 是否今天
time.IsYesterday(t) // 是否昨天
time.IsTomorrow(t) // 是否明天
time.IsLeapYear(2024) // 是否闰年
time.DaysInMonth(2024, 2) // 月份天数(29)时间边界
javascript
var t = time.Now()
time.StartOfDay(t) // 当天开始 00:00:00
time.EndOfDay(t) // 当天结束 23:59:59
time.StartOfWeek(t) // 本周开始
time.EndOfWeek(t) // 本周结束
time.StartOfMonth(t) // 本月开始
time.EndOfMonth(t) // 本月结束
time.StartOfYear(t) // 本年开始
time.EndOfYear(t) // 本年结束时间字段提取
javascript
var t = time.Now()
time.Year(t) // 年
time.Month(t) // 月
time.Day(t) // 日
time.Hour(t) // 时
time.Minute(t) // 分
time.Second(t) // 秒
time.Weekday(t) // 星期完整示例
javascript
var time = require("time")
// 获取当前时间
var now = time.Now()
log.Info("当前时间: " + time.Format(now, "2006-01-02 15:04:05"))
// 时间戳
var ts = time.NowUnix()
log.Info("Unix 时间戳: " + ts)
// 计算年龄
var birth = time.Parse("1990-06-15 00:00:00", "2006-01-02 15:04:05")
var age = time.Age(birth)
log.Info("年龄: " + age)
// 判断是否工作日
var weekday = time.Weekday(now)
if (weekday >= 1 && weekday <= 5) {
log.Info("工作日")
}
// 获取本月范围
var start = time.StartOfMonth(now)
var end = time.EndOfMonth(now)