如何将日期从一种表示法格式化为不同的表示法?
我的日期目前在格式:2017年6月20日20:00:07.000000000 ,我想将它们转换为:2017-06-20T20:00:07Z如何将日期从一种表示法格式化为不同的表示法?
package main
import (
"fmt"
"time"
)
func main() {
var b = "2017/06/20 20:00:07.000000000"
layout := "2006/01/02 15:04:05"
t, err := time.Parse(layout, b)
if err != nil {
fmt.Println(err)
}
fmt.Println(t)
}
以上程序输出为:2017-06-20 20:00:07 +0000 UTC。我试着保持布局“2006/01/02T15:04:05Z”,但它未能与消息运行:
解析时间 “二○一七年六月二十〇日20:00:07.000000000” 为 “ 2006/01/02T15:04:05Z“:无法解析”20:00:07.000000000“为”T“。
非常感谢您的帮助。谢谢。
package main
import (
"fmt"
"time"
)
func main() {
var b = "2017/06/20 20:00:07.000000000"
layout := "2006/01/02 15:04:05"
t, err := time.Parse(layout, b)
if err != nil {
fmt.Println(err)
}
fmt.Println(t.Format(time.RFC3339))
}
输出:2017-06-20T20:00:07Z
不管谁投降,如果这个实现是错误的,请帮助提供解决方案或者更好的实现可用。只是downvoting没有做任何增加这个论坛的价值。 –
我不是一个downvoting ...但你的输出没有所需的格式。所需的格式是斜杠,而不是减号。 – TehSphinX
@TehSphinX感谢您的澄清。 **来自问题的声明**:我的日期目前格式为:2017/06/20 20:00:07.000000000,我想将它们转换为:** 2017-06-20T20:00:07Z **。 我在我对该问题的评论中看到了自己的错误。评论提到它是错误的。我不允许编辑评论。 –
不可复制的,你提供的代码只是工作:https://play.golang.org/p/IMuvQ_iIg6 – zerkms
@zerkms感谢你的评论。抱歉不理解你的陈述。上面的程序工作,但输出:** 2017-06-20 20:00:07 +0000 UTC **不是我需要它:** 2006/01/02T15:04:05Z **。 –
使用[Time.Format](https://golang.org/pkg/time/#Time.Format)。 fmt.Println不会神奇地做你想做的。 – Peter