Go语言 使用时间解析前后的时间不同,解析

rkue9o1l  于 2023-04-18  发布在  Go
关注(0)|答案(1)|浏览(152)

我需要以字符串的形式接收一个时间,解析它,然后再次以字符串的形式呈现它:

package main

import ("fmt"; "time")

func main() {
  const timeLayout = "Mon, Jan 2, 2006 15:04 PM"
  sourceTime :=      "Mon, Apr 7, 2025 7:36 PM"
  myTime, err := time.Parse(timeLayout, sourceTime)
  if err != nil { panic(err) }
  fmt.Printf("\t\tsourceTime = \"%s\"\n myTime.Format(timeLayout) = \"%s\"\n",
    sourceTime, myTime.Format(timeLayout))
}

这是我的预期输出:

sourceTime = "Mon, Apr 7, 2025 7:36 PM"
 myTime.Format(timeLayout) = "Mon, Apr 7, 2025 7:36 PM"

但我收到了这个奇怪的输出:

sourceTime = "Mon, Apr 7, 2025 7:36 PM"
 myTime.Format(timeLayout) = "Mon, Apr 7, 2025 19:36 PM"

我没有改变我的变量中的东西,那么为什么我收到了一个不同的结果与相同的布局?我不应该改变这个时间布局。但我需要再次接收源字符串作为结果。

pgvzfuti

pgvzfuti1#

您的时间布局使用的是24小时制(例如,15:04而不是3:04),因此当您对其进行格式化时,您会得到19而不是7。如果您想要12小时制,则您的时间布局应该是"Mon, Jan 2, 2006 3:04 PM"

相关问题