首頁 >後端開發 >Golang >用time.Parse解析前後時間不同

用time.Parse解析前後時間不同

WBOY
WBOY轉載
2024-02-05 22:33:08542瀏覽

用time.Parse解析前後時間不同

問題內容

我需要接收一個字串形式的時間,解析它,然後再次將其呈現為字串:

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"

我沒有更改變數中的某些內容,那麼為什麼我會收到相同佈局的不同結果?我不應該改變這個時間佈局。但我需要再次接收來源字串作為結果。


正確答案


您的時間佈局使用24 小時制(例如15:04 而不是3:04),因此當您格式化它時,您會得到19 而不是7。如果您想要 12 小時制,那麼您的時間佈局應為 “2006 年 1 月 2 日星期一下午 3:04”

以上是用time.Parse解析前後時間不同的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除