2 回答

TA貢獻1813條經驗 獲得超2個贊
請注意,您的輸入字符串是有效的ISO 8601 格式。
然而,對于 JSON 序列化,JavaScript 使用略有不同(但仍然完全有效)的 ISO 8601 日期格式樣式,其中只有 3 位數字用于小數秒(提供毫秒分辨率)并且時區調整為協調世界時(UTC ) ,(又名 GMT+0,或“祖魯”時區)指定一個Z.
// JavaScript
JSON.stringify(new Date()); // => "2018-10-30T15:22:30.293Z"
// Millisecond resolution ─────────────────────────────┺┻┛┃
// "Zulu" (UTC) time zone ────────────────────────────────┚
您可以將時間戳轉換為 JavaScript 樣式,方法是首先解析輸入字符串,然后通過方法轉換為祖魯時間UTC(),然后使用所需的輸出格式進行格式化。
例如(去游樂場):
const (
INPUT_FORMAT = "2006-01-02T15:04:05.999999999-07:00"
OUTPUT_FORMAT = "2006-01-02T15:04:05.000Z"
)
func timestampToJavaScriptISO(s string) (string, error) {
t, err := time.Parse(INPUT_FORMAT, s)
if err != nil {
return "", err
}
return t.UTC().Format(OUTPUT_FORMAT), nil
}
func main() {
s := "2018-10-29T11:48:09.180022-04:00"
s2, err := timestampToJavaScriptISO(s)
if err != nil {
panic(err)
}
fmt.Println(s2)
// 2018-10-29T15:48:09.180Z
}
- 2 回答
- 0 關注
- 194 瀏覽
添加回答
舉報