转换时间字符串
Convert time string
我有一个来自 SQL 数据库的日期时间字符串。它以阿姆斯特丹当地时间存储。我想将其转换为 RFC3339 格式以将其添加到 XML 输出中。我的时间字符串 (timeStringFromDb) 具有以下值:“2020-11-27 09:04:05”
我使用下面的代码来转换日期时间字符串。
timezone, _ := time.LoadLocation("Europe/Amsterdam")
t, _ := time.Parse("2006-01-02 15:04:05", timeStringFromDb)
t = t.In(timezone)
fmt.Println(t.Format(time.RFC3339))
结果为:2020-11-27T10:04:05+01:00
我预计 2020-11-27T09:04:05+01:00
我看起来 t.In 函数也转换时间,但我只想添加时区,因为时间已经是本地时间。有什么想法吗?
一种方法是将时区附加到来自数据库的字符串:
timeStringFromDb := "2020-11-27 09:04:05"
timezone, _ := time.LoadLocation("Europe/Amsterdam")
t, _ := time.Parse("2006-01-02 15:04:05Z07:00", timeStringFromDb+"+01:00")
t = t.In(timezone)
fmt.Println(t.Format(time.RFC3339))
但这不是很优雅,我建议将数据库的时区更改为UTC。
我有一个来自 SQL 数据库的日期时间字符串。它以阿姆斯特丹当地时间存储。我想将其转换为 RFC3339 格式以将其添加到 XML 输出中。我的时间字符串 (timeStringFromDb) 具有以下值:“2020-11-27 09:04:05”
我使用下面的代码来转换日期时间字符串。
timezone, _ := time.LoadLocation("Europe/Amsterdam")
t, _ := time.Parse("2006-01-02 15:04:05", timeStringFromDb)
t = t.In(timezone)
fmt.Println(t.Format(time.RFC3339))
结果为:2020-11-27T10:04:05+01:00
我预计 2020-11-27T09:04:05+01:00
我看起来 t.In 函数也转换时间,但我只想添加时区,因为时间已经是本地时间。有什么想法吗?
一种方法是将时区附加到来自数据库的字符串:
timeStringFromDb := "2020-11-27 09:04:05"
timezone, _ := time.LoadLocation("Europe/Amsterdam")
t, _ := time.Parse("2006-01-02 15:04:05Z07:00", timeStringFromDb+"+01:00")
t = t.In(timezone)
fmt.Println(t.Format(time.RFC3339))
但这不是很优雅,我建议将数据库的时区更改为UTC。