解析特定時區的時間
您可以使用 time.ParseTime() 從字串中取得時間結構。它採用佈局字串作為參數,指定輸入字串的格式。佈局字串必須與輸入字串的格式完全相符。
如果需要解析包含時區的時間字串,可以使用 time.ParseInLocation()。此函數採用佈局字串和位置作為參數。該位置可以是 time.Location 值或表示時區名稱的字串。
例如,以下程式碼解析包含時區的時間字串:
import (
"fmt"
"time"
)
func main() {
const layout = "2006-01-02 15:04"
const timeStr = "2012-07-09 05:02:00 0000 CEST"
t, err := time.ParseInLocation(layout, timeStr, time.Local)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(t)
}
此程式碼將列印以下輸出:
2012-07-09 05:02:00 0000 CEST
time.ParseInLocation() 函數將解析時間根據佈局字元字串和指定位置的字串。在本例中,佈局字串為“2006-01-02 15:04”,位置為“CEST”。 time.ParseInLocation() 函數將會傳回一個表示解析時間的 time.Time 值。
如果未指定位置,time.ParseInLocation() 函數將使用本地時區。這意味著解析的時間將轉換為本地時區。
您可以透過創建時間來避免這種情況。具有正確時間和時區的時間值:
import (
"fmt"
"time"
)
func main() {
const layout = "2006-01-02 15:04"
const timeStr = "2012-07-09 05:02:00"
const timeZone = "CEST"
pz, err := time.LoadLocation(timeZone)
if err != nil {
fmt.Println(err)
return
}
t, err := time.Parse(layout, timeStr)
if err != nil {
fmt.Println(err)
return
}
T := t.In(pz)
fmt.Println(T)
}
此程式碼將列印以下輸出:
2012-07-09 05:02:00 0200 CEST
此程式碼的輸出顯示正確的時間時區。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3