工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆

golang获取昨天的日期

 golang的time包里面有个AddDate方法,可以通过参数获取之后的日期,如果把参数写成负数就可以获取之前的日期


nTime := time.Now()  
yesTime := nTime.AddDate(0,0,-1)  
logDay = yesTime.Format("20060102")  
 
 
------------------
包名 time
当前时间 time.Now()
当前时间戳time.Now().Unix()
时间格式化string
time.Now().Format("2006-01-02 15:04:05")
time.Now().Format("2006-01-02")
时间戳格式化到string
str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05")
string 转化到 时间

以上是时间转化 接下来是总会用到的特殊事件
现在时间 time.Now()
今天00:00:00
now := time.Now()
year, month, day := now.Date()
today_str := fmt.Sprintf("%d-%d-%d 00:00:00", year, month, day)
today_time := time.Date(year, month, day, 0, 0, 0, 0, time.Local)
明天00:00:00
tomorrow := time.Now().Add(24*time.Hour)

year, month, day := now.Date()
tomorrow_str := fmt.Sprintf("%d-%d-%d 00:00:00", year, month, day)
tomorrow_time := time.Date(year, month, day, 0, 0, 0, 0, time.Local)

时间比较
可以转化为时间戳比较
也可以用before 等来比较


// 补充 时间戳转化  
// 例子 前一天这个时候 86400是24小时的秒数 
fmt . Println ( time . Unix ( time . Now (). Unix ()+ 86400 ,   0 ). Format ( "20060102" ))

-------------------------
时间戳 
当前时间戳
 
fmt.Println(time.Now().Unix())
# 1389058332
str格式化时间
当前格式化时间
 
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))  // 这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法:6-1-2-3-4-5
# 2014-01-07 09:42:20
时间戳转str格式化时间
 
str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05")
fmt.Println(str_time)
# 2014-01-07 09:32:12
str格式化时间转时间戳
这个比较麻烦
 
the_time := time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local)
unix_time := the_time.Unix()
fmt.Println(unix_time)
# 389045004
还有一种方法,使用time.Parse
 
the_time, err := time.Parse("2006-01-02 15:04:05", "2014-01-08 09:04:41")
if err == nil {
        unix_time := the_time.Unix()
fmt.Println(unix_time)
}
# 1389171881
 

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):