【问题标题】:Convert UTC TZ Time to YYYY-MM-DD HH:MM:SS.zzzzzzz in Golang在 Golang 中将 UTC TZ 时间转换为 YYYY-MM-DD HH:MM:SS.zzzzzzz
【发布时间】:2022-11-18 23:11:27
【问题描述】:

我想举一个示例日期字符串,例如"2022-11-08T15:27:41.01333333Z",并在 Golang 中将其转换为"2022-11-08 15:27:41.01333333"。我基本上只想将 UTC 日期转换为 SQL Server 的可读 datetime2 表达式。

package main

import (
    "fmt"
    "time"
)

func main () {
    t := "2022-11-08T15:27:41.01333333Z"
    // How to Parse?
}

【问题讨论】:

  • datetime2 没有格式,它是一个二进制值。不要更换任何东西。如果要将 Go 日期插入数据库,请编写参数化查询并将值作为日期参数传递。不是一个字符串
  • d, _ := time.Parse("2006-02-01T15:04:05", t) akashmittal.com/parse-date-string-golang
  • 2022-11-08T15:27:41.01333333非协调世界时任何一个。那是一个当地的时间,因为它没有偏移量。 UTC 表示+00:00 的偏移量。还使用了Z 后缀,所以2022-11-08T15:27:41.01333333Z 等同于``2022-11-08T15:27:41.01333333 +00:00`
  • @PanagiotisKanavos 我想添加 Z。我很抱歉。我基本上想将作为 UTC 日期(使用 T 和 Z)提供的内容加载到一个名为 UTC 但格式可用的列中
  • 如何解析?” -> time package docs,尤其是Parse。但请注意@PanagiotisKanavos 第一条评论。可能不需要与字符串之间的转换。

标签: date datetime go time


【解决方案1】:

这应该有效:

package main

import (
    "fmt"
    "time"
)

func main() {
    t := "2022-11-08T15:27:41.01333333Z"
    const layout = "2006-01-02T15:04:05.00000000Z07:00"
    x, err := time.Parse(layout, t)
    const render = "2006-01-02 15:04:05.00000000"
    fmt.Println(x.Format(render), err)
}

【讨论】:

    猜你喜欢
    • 2011-09-10
    • 1970-01-01
    • 2013-10-19
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多