如何在 GO 中使用毫秒(字串)將毫秒(uint64)轉換為時間格式 RFC3999?
例如:
var milleSecond int64
milleSecond = 1645286399999 //My Local Time : Sat Feb 19 2022 23:59:59
var loc = time.FixedZone("UTC-4", -4*3600)
string1 := time.UnixMilli(end).In(loc).Format(time.RFC3339)
實際結果:2022-02-19T11:59:59-04:00
預期結果(應該是):2022-02-19T11:59:59.999-04:00
uj5u.com熱心網友回復:
您要求一個 RFC3339 格式的字串,秒報告到最接近的毫秒。time 包中沒有用于此的格式字串(僅具有整秒和納秒精度),但您可以自己制作。
這是從標準庫復制的秒到最接近納秒的字串:
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
您可以通過洗掉.999999999(報告時間到最接近的納秒,洗掉尾隨零)到.000(報告時間到最接近的毫秒,不要洗掉尾隨零)來輕松地制作一個毫秒版本。這種格式記錄time.Layout在包檔案https://pkg.go.dev/time#pkg-constants中:
RFC3339Milli = "2006-01-02T15:04:05.000Z07:00"
代碼(游樂場鏈接):
package main
import (
"fmt"
"time"
)
const RFC3339Milli = "2006-01-02T15:04:05.000Z07:00"
func main() {
ms := int64(1645286399999) //My Local Time : Sat Feb 19 2022 23:59:59
var loc = time.FixedZone("UTC-4", -4*3600)
fmt.Println(time.UnixMilli(ms).In(loc).Format(RFC3339Milli))
}
輸出:
2022-02-19T11:59:59.999-04:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/429826.html
