我需要以字符串的形式接收一个时间,解析它,然后再次以字符串的形式呈现它:
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"
我没有改变我的变量中的东西,那么为什么我收到了一个不同的结果与相同的布局?我不应该改变这个时间布局。但我需要再次接收源字符串作为结果。
1条答案
按热度按时间pgvzfuti1#
您的时间布局使用的是24小时制(例如,15:04而不是3:04),因此当您对其进行格式化时,您会得到19而不是7。如果您想要12小时制,则您的时间布局应该是
"Mon, Jan 2, 2006 3:04 PM"