设置时区
| var cstZone = time.FixedZone("CST", 8*3600) |
| time.Local = cstZone |
| |
| |
获取操作
当前时间
| package main |
| |
| import ( |
| "fmt" |
| "time" |
| ) |
| |
| var ( |
| cstZone = time.FixedZone("CST", 8*3600) |
| ) |
| |
| func main() { |
| fmt.Println(time.Now().In(cstZone).Format("2006-01-02 15:04:05")) |
| fmt.Println(time.Now().In(cstZone).Unix()) |
| fmt.Println(time.Now().In(cstZone).UnixNano()) |
| fmt.Println(time.Now().In(cstZone).Nanosecond()) |
| } |
| |
获取当前年月日时分秒、星期几、一年中的第几天等操作
| package main |
| |
| import ( |
| "fmt" |
| "time" |
| ) |
| |
| var ( |
| cstZone = time.FixedZone("CST", 8*3600) |
| format = "2006-01-02 15:04:05" |
| ) |
| |
| func main() { |
| now, _ := time.ParseInLocation(format, "2022-01-01 00:00:00", cstZone) |
| fmt.Printf("%d %d %d\n", now.Year(), now.Month(), now.Day()) |
| fmt.Printf("%d %d %d\n", now.Hour(), now.Minute(), now.Second()) |
| fmt.Printf("%d \n", now.YearDay()) |
| now = now.AddDate(0, 0, 1) |
| fmt.Printf("%d \n", now.Weekday()) |
| |
| |
| |
| |
| |
| |
| } |
| |
转换操作
字符串转时间戳
| package main |
| |
| import ( |
| "fmt" |
| "time" |
| ) |
| |
| var ( |
| cstZone = time.FixedZone("CST", 8*3600) |
| ) |
| |
| func main() { |
| date, _ := time.ParseInLocation("2006-01-02 15:04:05", |
| time.Now().In(cstZone).Format("2006-01-02 15:04:05"), |
| cstZone) |
| fmt.Println(date.Unix()) |
| } |
| |
时间戳转字符串
| package main |
| |
| import ( |
| "fmt" |
| "time" |
| ) |
| |
| var ( |
| cstZone = time.FixedZone("CST", 8*3600) |
| ) |
| |
| func main() { |
| date, _ := time.ParseInLocation("2006-01-02 15:04:05", |
| time.Now().In(cstZone).Format("2006-01-02 15:04:05"), |
| cstZone) |
| fmt.Println(time.Unix(date.Unix(), 0).Format("2006-01-02 15:04:05")) |
| } |
| |
日期和时间操作
获取过去的日期
| package main |
| |
| import ( |
| "fmt" |
| "time" |
| ) |
| |
| var ( |
| cstZone = time.FixedZone("CST", 8*3600) |
| timeFormat = "2006-01-02 15:04:05" |
| ) |
| |
| func main() { |
| fmt.Println(time.Now().In(cstZone).AddDate(0, 0, -1).Format(timeFormat)) |
| } |
获取未来的日期
| package main |
| |
| import ( |
| "fmt" |
| "time" |
| ) |
| |
| var ( |
| cstZone = time.FixedZone("CST", 8*3600) |
| timeFormat = "2006-01-02 15:04:05" |
| ) |
| |
| func main() { |
| fmt.Println(time.Now().In(cstZone).AddDate(0, 0, 1).Format(timeFormat)) |
| } |
| |
获取过去和未来的时间
| package main |
| |
| import ( |
| "fmt" |
| "time" |
| ) |
| |
| var ( |
| cstZone = time.FixedZone("CST", 8*3600) |
| format = "2006-01-02 15:04:05" |
| ) |
| |
| func main() { |
| now := time.Now().In(cstZone) |
| |
| |
| |
| |
| before, _ := time.ParseDuration("10h10m10s") |
| |
| now = now.Add(before) |
| fmt.Println(before) |
| fmt.Println(now.Format(format)) |
| } |
| |
时间比较操作
过去获未来
| package main |
| |
| import ( |
| "fmt" |
| "time" |
| ) |
| |
| var ( |
| cstZone = time.FixedZone("CST", 8*3600) |
| ) |
| |
| func main() { |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| now := time.Now().In(cstZone) |
| yesterday := time.Now().In(cstZone).AddDate(0, 0, -1) |
| |
| fmt.Println(now.After(yesterday)) |
| fmt.Println(yesterday.Before(now)) |
| fmt.Println(now.Equal(yesterday)) |
| } |
| |
时间相差
| package main |
| |
| import ( |
| "fmt" |
| "time" |
| ) |
| |
| var ( |
| cstZone = time.FixedZone("CST", 8*3600) |
| ) |
| |
| func main() { |
| |
| |
| |
| |
| |
| now := time.Now().In(cstZone) |
| before, _ := time.ParseDuration("-1h") |
| now = now.Add(before) |
| fmt.Println(time.Since(now)) |
| fmt.Println(time.Until(now)) |
| } |
| |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」