Go语言时间戳格式化:Unix时间转标准字符串

码头散步
码头散步
发布时间:2026-10-14| 6人浏览过
原创

在Go语言开发中,经常需要将Unix时间戳(整数类型)转换为人类可读的字符串格式。本文介绍最简洁的方法:利用内置 time 包的 Unix() 和 Format() 函数,配合Go独特的时间布局常量即可完成转换。

核心方法与原理

Go语言的 time 包提供了一种直观的方式来定义时间格式。其关键在于理解Go语言内部用于解析时间的“参考时间”。这个参考时间是:
2006-01-02 15:04:05

第1步:获取当前Unix时间戳

目的:获得一个标准的Unix时间戳(自1970年1月1日以来的秒数)。
入口:time.Now().Unix()
动作:调用当前时间对象并转换为Unix秒数。
参数:int64 类型。

package main

import (
	"fmt"
	"time"
)

func main() {
	// 获取当前Unix时间戳
	var t int64 = time.Now().Unix()
	println(t)

第2步:将时间戳转为time.Time对象

目的:将Unix整数转换为Go的 time.Time 结构体,以便进行格式化。
入口:time.Unix(sec int64, nsec int32)
动作:传入上一步的时间戳。
重要参数:
- sec: Unix秒数
- nsec: 纳秒数(通常为0)

// 将Unix时间戳转换为time.Time对象
var ti time.Time = time.Unix(t, 0)

第3步:使用Format()生成指定格式的字符串

目的:将 time.Time 对象转换为自定义格式的字符串。
入口:(t Time).Format(layout string)
动作:定义布局字符串并调用Format方法。
关键布局说明:
- 2006: 年份
- 01: 月份
- 02: 日期
- 15: 小时(24小时制)
- 04: 分钟
- 05: 秒
- Mon Jan 2 15:04:05 MST 2006 是Go默认的标准布局,可拆解记忆为 1 2 3 4 5 6 的位置关系:月日时分管年。

// 使用指定布局格式化时间
var s string = time.Unix(t, 0).Format("2006-01-02 15:04:05")
println(s)

完整代码示例

以下是完整的可运行代码:

package main

import (
	"fmt"
	"time"
)

func main() {
	// 1. 获取当前Unix时间戳
	var t int64 = time.Now().Unix()
	
	// 2. 直接链式调用:Unix() -> Format()
	// 注意:time.Unix返回time.Time,然后调用Format
	formattedTime := time.Unix(t, 0).Format("2006-01-02 15:04:05")
	
	fmt.Println("Unix时间戳:", t)
	fmt.Println("格式化后:", formattedTime)
}

常见时间格式布局

  • YYYY-MM-DD HH:MM:SS: "2006-01-02 15:04:05"
  • YYYY/MM/DD HH:MM:SS: "2006/01/02 15:04:05"
  • 仅年月日: "2006-01-02"
  • 仅时分秒: "15:04:05"
  • 带毫秒: "2006-01-02 15:04:05.000"
  • RFC3339格式: time.RFC3339 ("2006-01-02T15:04:05Z07:00")

注意事项

  1. 必须使用Go的参考时间: 2006-01-02 15:04:05,不能使用其他数字作为占位符。
  2. 时区问题: time.Unix() 默认使用本地时区。如果需要UTC时间,应使用 time.Unix(t, 0).UTC() 或设置固定时区。
  3. 纳秒精度: 如果原始数据包含纳秒,需在第二个参数传入非零值,或使用 time.UnixNano()。

以上就是Go语言中将时间戳格式化的详细内容,更多关于Go语言时间处理的知识请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。