golang如何实现时间格式化_golang时间格式化方法详解

张开发
2026/4/19 4:21:43 15 分钟阅读

分享文章

golang如何实现时间格式化_golang时间格式化方法详解
Go时间格式化必须用“2006-01-02 15:04:05”作为layout因其对应Unix时间戳1136239445的MST时区参考时间各数字位置被映射为年月日时分秒占位符而非字面量或传统格式符。Go 里时间格式化不是用“年月日”这种字面量而是用一个具体的时间值 2006-01-02 15:04:05 作为模板 —— 这是唯一合法的 layout 字符串记不住就直接复制粘贴。为什么必须用 2006-01-02 15:04:05Go 的 time.Format() 不接受类似 Python 的 %Y-%m-%d 或 JavaScript 的 YYYY-MM-DD。它用的是“参考时间”reference time机制固定取 Unix 时间戳 1136239445 对应的本地时间即 2006-01-02 15:04:05 MST把每个数字位置映射为占位符。所以2006 → 四位年份写成 0006 或 2026 都不生效01 → 两位月份不是 1也不是 Jan02 → 两位日期不是 2注意不是 00215 → 24 小时制小时不是 303 是 12 小时制04 → 两位分钟05 → 两位秒时区要用 MST不是 UTC 或 CST想输出 UTC 文字得手动拼接time.Format() 常见错误和绕过写法新手常写的 t.Format(yyyy-MM-dd HH:mm:ss) 会原样输出字符串因为 Go 不识别这些符号 —— 它只认参考时间里的数字位置。立即学习“go语言免费学习笔记深入”正确写法示例now : time.Now()fmt.Println(now.Format(2006-01-02 15:04:05)) // 2024-05-21 14:30:45fmt.Println(now.Format(2006/01/02)) // 2024/05/21fmt.Println(now.Format(01-02-2006 03:04:05 PM)) // 05-21-2024 02:30:45 PM注意03 和 15 本质是同一时刻不同表示不能混用PM 要配合 03否则无效。 Cleanup.pictures 智能移除图片中的物体、文本、污迹、人物或任何不想要的东西

更多文章