You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言如何将日期时间的时区格式化为IANA标准时区格式

Go标准库的time.Format方法没有提供对应占位符直接输出IANA格式的时区标识符,需要单独获取时区对象的标识符后与格式化后的时间字符串拼接,实现方案如下:

实现代码

package main

import (
	"fmt"
	"time"
)

func main() {
	// 加载目标IANA时区
	loc, err := time.LoadLocation("Europe/London")
	if err != nil {
		// 生产环境请根据实际情况处理错误,此处仅做示例
		panic(err)
	}
	// 将当前时间转换到目标时区
	targetTime := time.Now().In(loc)
	// 格式化时间主体后拼接时区标识符
	formatted := fmt.Sprintf("%s %s", targetTime.Format("2 Jan 2006 03:04:05PM"), loc.String())
	fmt.Println(formatted)
}

运行后即可输出符合要求的结果:

26 Nov 2021 04:00:31PM Europe/London

补充说明

如果不需要固定指定时区,想要直接使用运行环境的本地时区的IANA标识符,可直接简化为:

now := time.Now()
formatted := fmt.Sprintf("%s %s", now.Format("2 Jan 2006 03:04:05PM"), now.Location().String())

注意:部分精简操作系统、老旧Windows版本可能未内置IANA时区数据库,此时LoadLocation会报错,可通过在编译时引入time/tzdata包内嵌时区数据库解决。

内容的提问来源于stack exchange,提问作者Arvind Kumar Avinash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:45:05