golang 格式化时间总结
  热度 °
golang
中经常需要格式化时间和日期来满足不同的业务需求,下面总结格式化时间日期中遇到的问题。
golang time包 时间日期格式化定义
go 的time package 提供了time.Format函数,用来对时间进行格式化输出;类似的还有time.Parse用来解析字符串类型的时间到time.Time。这是两个互逆的函数。
下面看golang
中time
包对于时间的详细定义
- 月份 1,01,Jan,January
- 日 2,02,_2
- 时 3,03,15,PM,pm,AM,am
- 分 4,04
- 秒 5,05
- 年 06,2006
- 时区 -07,-0700,Z0700,Z07:00,-07:00,MST
- 周几 Mon,Monday
比如小时的表示(原定义是下午3时,也就是15时)
- 3 用12小时制表示,去掉前导0
- 03 用12小时制表示,保留前导0
- 15 用24小时制表示,保留前导0
- 03pm 用24小时制am/pm表示上下午表示,保留前导0
- 3pm 用24小时制am/pm表示上下午表示,去掉前导0
又比如月份
- 1 数字表示月份,去掉前导0
- 01 数字表示月份,保留前导0
- Jan 缩写单词表示月份
- January 全单词表示月份
时间日期格式化
- 本地当期时间
1 | fmt.Println(time.Now()) //2016-07-14 14:27:28.214512532 +0800 CST |
- 时间格式化
1 | fmt.Println(time.Now().Format("3:04:05.000 PM Mon Jan")) // 2:27:05.702 PM Thu Jul |
- 本地当前时间戳(10位)
1 | fmt.Println(time.Now().Unix()) //1468479251 |
- 本地当前时间戳(19位)
1 | fmt.Println(time.Now().UnixNano()) //1468480006774460462 |
- 时间戳转时间
1 | fmt.Println(time.Unix(1389058332, 0).Format("2006-01-02 15:04:05")) //2014-01-07 09:32:12 |
- 时间转时间戳
1 | fmt.Println(time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local).Unix()) |
- 时间转换为UTC时间和本地时间( UTC:零时区 +0000, China: 东八区 +0800)
1 | dateStr := "2016-07-14 14:24:51" |
作者署名:朴实的一线攻城狮
本文标题:golang 格式化时间总结
本文出处:http://researchlab.github.io/2016/06/14/go-time-summary/
版权声明:本文由Lee Hong创作和发表,采用署名(BY)-非商业性使用(NC)-相同方式共享(SA)国际许可协议进行许可,转载请注明作者及出处, 否则保留追究法律责任的权利。