Go后端技术学习总结-Day8 | 青训营

81 阅读1分钟

书接上回,更多内容请移步主页查看“后端技术学习总结|青训营”系列。

Go语言语法初步讲解

  1. json处理(略,字段首大写即可用marshaler去序列化)

  2. 时间处理,time.Now,时间戳

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    fmt.Println(now) // 2022-03-27 18:04:59.433297 +0800 CST m=+0.000087933
    t := time.Date(2022, 3, 27, 1, 25, 36, 0, time.UTC)
    t2 := time.Date(2022, 3, 27, 2, 30, 36, 0, time.UTC)
    
    //直接打印
    fmt.Println(t)                                                  // 2022-03-27 01:25:36 +0000 UTC
    //规范格式1
    fmt.Println(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute()) // 2022 March 27 1 25
    //规范格式2
    fmt.Println(t.Format("2006-01-02 15:04:05"))                    // 2022-03-27 01:25:36
    
    //输出两个时间的差
    diff := t2.Sub(t)
    fmt.Println(diff)                           // 1h5m0s
    
    //另类格式
    fmt.Println(diff.Minutes(), diff.Seconds()) // 65 3900
    
    //将字符串格式的时间解析为 time.Time 类型的值
    t3, err := time.Parse("2006-01-02 15:04:05", "2022-03-27 01:25:36")
    //异常处理
    if err != nil {
        panic(err)
    }
    fmt.Println(t3 == t)    // true
    
    //获取时间戳
    fmt.Println(now.Unix()) // 1648738080
}

时间戳的存在能够很好地规避字符串到时间出现乱码的问题。从某种意义上说为本菜鸟在Java语言上无法解决的“字符串转存”问题提供了较好的实现途径,而更加简洁的Go语言语法也给予了更多操作的可能性,期待下一次课程!