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 关注
- 126 浏览
添加回答
举报