是否有在一个RFC时间戳转换为Unix时间所包括的库的存储库或功能(或另一种格式,然后我可以格式化为Unix时间?)golang RFC2822转换
例如,我想将此Tue Sep 16 21:58:58 +0000 2014
更改为Unix时间戳。
是否有在一个RFC时间戳转换为Unix时间所包括的库的存储库或功能(或另一种格式,然后我可以格式化为Unix时间?)golang RFC2822转换
例如,我想将此Tue Sep 16 21:58:58 +0000 2014
更改为Unix时间戳。
例如,
package main
import (
"fmt"
"time"
)
func main() {
s := "Tue Sep 16 21:58:58 +0000 2014"
const rfc2822 = "Mon Jan 02 15:04:05 -0700 2006"
t, err := time.Parse(rfc2822, s)
if err != nil {
fmt.Println(err)
return
}
u := t.Unix()
fmt.Println(u)
f := t.Format(time.UnixDate)
fmt.Println(f)
}
输出:
1410904738
Tue Sep 16 21:58:58 +0000 2014
参考文献:
RFC2822: 3.3. Date and Time Specification
注:
有一个包time
格式常量名为RubyDate
;这是一个误用。
The Go作者被Go Issue 518误导,称其为Ruby Time.now
输出Tue Jan 12 02:52:59 -0800 2010
。然而,
#!/usr/bin/env ruby
print Time.now
print "\n"
输出:
2014-09-20 19:40:32 -0400
后来,这个问题进行了修订,说Tue Jan 12 02:52:59 -0800 2010
是由Twitter的API使用的日期格式。在开始的时候,在“失败鲸鱼”日子里,Twitter使用了Ruby-on-Rails,这可能是他们认为它是Ruby日期格式的原因。
我没有在我的例子中使用time.RubyDate
常数,因为它是误导性的。一个名为rfc2822
的常量提供了更好的文档。
参考文献:
Go: Issue 518: time.Parse - numeric time zones and spacing
这种形式好像是叫time.RubyDate – 2014-09-20 22:01:42
@ NickCraig木业你能就此展开? golang'time'包中有'time.RubyDate'方法吗? – bvpx 2014-09-20 22:12:08
@bvpx不是一种方法,而是一种时间格式,具有与上面相同的定义'RubyDate =“Mon Jan 02 15:04:05 -0700 2006”' – 2014-09-20 22:27:34