Golang 时间操作


package main

import (
	"fmt"
	"time"
)

func main() {
	//指定某一天转月份
	day, _ := time.Parse("2006-01-02", "2017-11-14")
	month := time.Unix(day.Unix(), 0).Format("2006-01")
	fmt.Println(month)

	//获取当前时间
	fmt.Println(time.Now())

	//获取昨天 "2006-01-02 15:04:05"
	yesterday := time.Now().AddDate(0, 0, -1).Format("2006-01-02")
	fmt.Println(yesterday)

	//获取当前年
	fmt.Println(time.Now().Year())

	//获取当前月
	fmt.Println(int(time.Now().Month()))

	//获取当前日
	fmt.Println(time.Now().Day())

	//获取当前周几
	fmt.Println(int(time.Now().Weekday()))

	//获取当前小时
	fmt.Println(time.Now().Hour())

	//获取当前分钟
	fmt.Println(time.Now().Minute())

	//获取当前秒
	fmt.Println(time.Now().Second())

	//获取当前时间戳-秒
	fmt.Println(time.Now().Unix())

	//获取当前时间戳-纳秒
	fmt.Println(time.Now().UnixNano())
    
    //两个时间相差的时间戳-秒
    local, _ := time.LoadLocation("Local")
    end_time, _ := time.ParseInLocation("2006-01-02", time.Now().AddDate(0, 0, 1).Format("2006-01-02"), local)
    expired_time := int64(end_time.Unix() - time.Now().In(local).Unix())
    spew.Dump(expired_time)
    
    //时间 to 时间戳
   loc, _ := time.LoadLocation("Asia/Shanghai")        //设置时区
   tt, _ := time.ParseInLocation("2006-01-02 15:04:05", "2018-07-11 15:07:51", loc) 
   fmt.Println(tt.Unix())                             //1531292871
 
   //时间戳 to 时间
   tm := time.Unix(1531293019, 0)
   fmt.Println(tm.Format("2006-01-02 15:04:05")) //2018-07-11 15:10:19
   
//获取相差时间
func GetDayDiffer(start_time, end_time string) int {
   var day int
   t1, err := time.ParseInLocation("2006-01-02", start_time, time.Local)
   t2, err := time.ParseInLocation("2006-01-02", end_time, time.Local)

   if err == nil && t1.Before(t2) {
      diff := t2.Unix() - t1.Unix()
      return int(diff / 3600 / 24)
   } else {
      return day
   }
}
    
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Go语言中的时间时区是通过time包来处理的。time包提供了一些函数和方法来获取和操作时间以及时区信息。 在Go中,可以使用time.Now()函数来获取当前的本地时间。这个函数返回一个time.Time类型的值,其中包含了年、月、日、时、分、秒等信息。 要获取特定时区的时间,可以使用time.LoadLocation()函数来加载指定的时区。例如,要获取纽约的时间,可以使用以下代码: ``` loc, err := time.LoadLocation("America/New_York") if err != nil { fmt.Println("加载时区失败:", err) return } nyTime := time.Now().In(loc) fmt.Println("纽约时间:", nyTime) ``` 在上面的代码中,我们首先使用time.LoadLocation()函数加载了纽约的时区,然后使用time.Now().In()方法将当前时间转换为纽约时区的时间。 除了获取特定时区的时间,还可以使用time.FixedZone()函数创建一个固定偏移量的时区。例如,要创建一个偏移量为-8小时的时区,可以使用以下代码: ``` offset := -8 * 60 * 60 // 偏移量为-8小时 fixedZone := time.FixedZone("CustomZone", offset) customTime := time.Now().In(fixedZone) fmt.Println("自定义时区时间:", customTime) ``` 在上面的代码中,我们使用time.FixedZone()函数创建了一个偏移量为-8小时的自定义时区,并将当前时间转换为该时区的时间。 需要注意的是,Go语言中的时间时区信息是通过time.Time类型来保存的,而不是单独的时区类型。因此,在处理时间时,需要使用相应的时区信息来进行转换和计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值