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

在Golang中将UTC时区时间转换为YYYY-MM-DD HH:MM:SS.zzzzzzz格式

在Golang中将UTC日期字符串转换为SQL Server datetime2格式

要把带UTC后缀的日期字符串转换成SQL Server可识别的datetime2格式,只需要两步:解析原始UTC时间字符串,再按目标格式输出即可,具体实现如下:

完整代码示例

package main

import (
    "fmt"
    "time"
)

func main() {
    tStr := "2022-11-08T15:27:41.01333333Z"
    // 用匹配的布局字符串解析UTC时间
    parsedTime, err := time.Parse("2006-01-02T15:04:05.00000000Z", tStr)
    if err != nil {
        fmt.Printf("日期解析失败: %v\n", err)
        return
    }
    // 格式化为SQL Server datetime2兼容的格式
    sqlDateTime := parsedTime.Format("2006-01-02 15:04:05.00000000")
    fmt.Println(sqlDateTime) // 输出结果: 2022-11-08 15:27:41.01333333
}

关键说明

  1. 解析逻辑:原始字符串是标准UTC格式(带Z后缀),使用time.Parse时,布局字符串要严格匹配输入的格式——这里用"2006-01-02T15:04:05.00000000Z"对应输入的8位小数秒结构,也可以直接用time.RFC3339Nano(它支持可变长度的小数秒),效果一致。
  2. 格式化逻辑:目标格式只需要把原始字符串的T替换为空格,去掉Z后缀,所以用布局字符串"2006-01-02 15:04:05.00000000"即可直接生成datetime2可识别的表达式。
  3. 时区问题:输入字符串本身是UTC时间,解析后得到的time.Time对象默认就是UTC时区,无需额外做时区转换,直接格式化就能得到正确结果。

内容的提问来源于stack exchange,提问作者Coldchain9

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:01:24