Go 언어 기반의 Time 패키지에 대한 자세한 설명

풀어 주다: 2023-07-21 13:27:11
앞으로
1396명이 탐색했습니다.
time.Now()

time.Now()은 시간 유형을 반환합니다.

해당 코드는 다음과 같습니다

func main() {
    var nowTime = time.Now()
    fmt.Println(nowTime)
    var year = nowTime.Year()     //当前年份
    var month = nowTime.Month()   //当前月份
    var day = nowTime.Day()       //今天几号
    var hour = nowTime.Hour()     //现在几时
    var Minute = nowTime.Minute() //现在几分
    var second = nowTime.Second() //现在几秒
    fmt.Printf("当前年份:%v\n",year)
    fmt.Printf("当前月份:%v\n",month)
    fmt.Printf("几号了:%v\n",day)
    fmt.Printf("几时:%v\n",hour)
    fmt.Printf("几分:%v\n",Minute)
    fmt.Printf("几秒:%v\n",second)
}
로그인 후 복사

실행 결과

Go 언어 기반의 Time 패키지에 대한 자세한 설명

时间戳

时间戳:从北京时间1970年1月1日8点到现在时间的秒数,是一个int64类型。

相关代码

func main() {
    var nowTime = time.Now()
    var timestampSecond = nowTime.Unix()
    fmt.Println(timestampSecond)
}
로그인 후 복사

执行结果

Go 언어 기반의 Time 패키지에 대한 자세한 설명

到目前为止已经有1603698727秒了,时间不等人呐!

纳秒时间戳

一般情况下我们使用的都是,但是时间戳还可以返回成纳秒,用的不多,了解就好。

代码

func main() {
    var nowTime = time.Now()
    var timestampNano = nowTime.UnixNano()
    fmt.Println(timestampNano)
}
로그인 후 복사

执行结果

Go 언어 기반의 Time 패키지에 대한 자세한 설명

时间戳转Time

有时候别人给我们的是时间戳,我们需要反着转以下,时间戳->时间类型

需要用到的是time.Unix

代码

func main() {
    //时间戳
    var timestampSecond int64 = 1603698727
    //转换为time对象
    var timeObj = time.Unix(timestampSecond, 0)
    var year = timeObj.Year()     //当前年份
    var month = timeObj.Month()   //当前月份
    var day = timeObj.Day()       //今天几号
    var hour = timeObj.Hour()     //现在几时
    var Minute = timeObj.Minute() //现在几分
    var second = timeObj.Second() //现在几秒
    fmt.Printf("年份:%v\n", year)
    fmt.Printf("月份:%v\n", month)
    fmt.Printf("几号:%v\n", day)
    fmt.Printf("几时:%v\n", hour)
    fmt.Printf("几分:%v\n", Minute)
    fmt.Printf("几秒:%v\n", second)
}
로그인 후 복사

执行效果

Go 언어 기반의 Time 패키지에 대한 자세한 설명

Time+

많은 경우 시간이 생기면 한 달 또는 몇 시간을 앞이나 뒤로 투영해야 하는데, 이는 Time+입니다.

Go에는 시간 추정을 위한 두 가지 함수가 있습니다. 하나는 추가Add,一个是AddDate,分别是+小时+天数, 하나는 AddDate

, 각각 +시간

and+일수.

🎜🎜🎜Add🎜🎜🎜🎜🎜Code🎜🎜🎜

Add最大单位是小时,只能+小时

func main() {
    //当前时间
    nowTime := time.Now()
    fmt.Println("当前时间:",nowTime)
    time1 := nowTime.Add(time.Hour)
    fmt.Println("加一个小时时间:", time1)
    time2 := nowTime.Add( time.Hour*2)
    fmt.Println("加二个小时时间:", time2)
}
로그인 후 복사

执行结果

Go 언어 기반의 Time 패키지에 대한 자세한 설명

AddDate

AddDate就牛逼很多了,有三个参数,分别是年,月,日,根据需求加就行了。

代码

func main() {
    //当前时间
    nowTime := time.Now()
    fmt.Println("当前时间:",nowTime)
    month1 := nowTime.AddDate(0, 1, 1)
    fmt.Println("加一个月时间:", month1)
    month2 := nowTime.AddDate(0, 2, 1)
    fmt.Println("加二个月时间:", month2)
}
로그인 후 복사

执行结果

Go 언어 기반의 Time 패키지에 대한 자세한 설명

注意:上述不仅可以时间+,还可以时间-前面加负号就可以了。

Sub

Sub通常用在计算某一段代码执行用了多久时间,最后时间-最开始时间=执行时间

代码

func main() {
    //当前时间
    beginTime := time.Now()
    //各种操作
    time.Sleep(time.Second)
    //结束时间
    end_time := time.Now()
    //计算时间
    execTime := end_time.Sub(beginTime)
    fmt.Println("执行时间:", execTime)
}
로그인 후 복사

执行结果

Go 언어 기반의 Time 패키지에 대한 자세한 설명

定时器

默认的定时器挺Low的,只有最简单的功能,了解就好。


示例:每隔一秒执行次相关代码。

代码

func main() {
    ticker := time.Tick(time.Second)
    for i := range ticker {
        fmt.Println(i)
}
}
로그인 후 복사

执行结果

Go 언어 기반의 Time 패키지에 대한 자세한 설명

时间格式化(time -> string)

Go语言的时间格式化,有点逗,跟其他语言都不一样,没有%Y%M之类的写法。

记住一个时间2006-01-02 15:04:05.000 Mon Jan/PM Mon Jan

分别对应年-月-日 时:分:秒 24/12

当前,同其语言一样,可以只格式化年-月-日等。

格式时间需要用到Format方法。


代码

func main() {
    now := time.Now()
    //年 月 日 时 分 秒
    fmt.Println(now.Format("2006-01-02 15:04:05"))
    //24小时
    fmt.Println(now.Format("2006-01-02 15:04:05 Mon Jan"))
    //12小时
    fmt.Println(now.Format("2006-01-02 15:04:05 PM Mon Jan"))
    //年月日
    fmt.Println(now.Format("2006-01-02"))
}
로그인 후 복사

执行结果

Go 언어 기반의 Time 패키지에 대한 자세한 설명

字符串格式化时间(string -> time)

将拿到的时间字符串转成时间类型。

代码

func main() {
    //时间字符串
    timeString := "2020/09/01 14:01:45"
    //加载时区,亚洲/上海
    location, err := time.LoadLocation("Asia/Shanghai")
    if err != nil {
        fmt.Println("时区加载失败,", err)
        return
}
    timeObj, err := time.ParseInLocation("2006/01/02 15:04:05", timeString, location)
    if err != nil {
        fmt.Println("时间转换失败,", err)
        return
}
    fmt.Println(timeObj)
}
로그인 후 복사

执行结果

Go 언어 기반의 Time 패키지에 대한 자세한 설명

Summary

이제 Go 타임의 작업은 기본적으로 위와 같습니다.

물론, 기본적으로 데일리용으로도 충분한 기능을 갖춘 내장형 가방입니다.

사실 가장 중요한 것은 추가AddAddDate时间 -> 格式化字符串字符串 -> 时间AddDate

, 🎜🎜시간-> 형식 문자열🎜🎜, 🎜🎜String-> time🎜🎜, 일상에서 가장 자주 사용되는 항목입니다. 삶. 🎜🎜🎜

위 내용은 Go 언어 기반의 Time 패키지에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:Go语言进阶学习
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿