go语言学习格式化时间转时间戳 北京go周末培训

    /    2019-04-30

更多内容请关注公众号:Go程序员开发

格式化时间转时间戳

格式化时间转时间戳常用函数和方法:

func Date(year intmonth Monthdayhour, min, sec, nsec int, loc *Location) Time

Date返回一个时区为loc、当地时间为:

year-month-day hour:min:sec + nsec nanoseconds

的时间点。
month、day、hour、min、sec和nsec的值可能会超出它们的正常范围,在转换前函数会自动将之规范化。

func Parse(layout, value string) (Time, error)

Parse解析一个格式化的时间字符串并返回它代表的时间。

func ParseInLocation(layout, value string, loc *Location) (Time, error)

ParseInLocation类似Parse但有两个重要的不同之处。第一,当缺少时区信息时,Parse将时间解释为UTC时间,而ParseInLocation将返回值的Location设置为loc;第二,当时间字符串提供了时区偏移量信息时,Parse会尝试去匹配本地时区,而ParseInLocation会去匹配loc。

方法一:

package main

import (
    "fmt"
    "time"
)

func main() {
    the_time := time.Date(2017, 8, 9, 12, 34, 56, 0, time.Local)
    unix_time := the_time.Unix()
    fmt.Println(unix_time)
    fmt.Println(time.Unix(unix_time, 0).Format("2006-01-02 15:04:05"))
}

方法二:

package main

import (
    "fmt"
    "time"
)

func main() {
    // 返回的不是本地时间, 而是 UTC , 会自动加8小时.
    the_time, err := time.Parse("2006-01-02 15:04:05""2017-08-09 12:34:56")
    if err == nil {
        unix_time := the_time.Unix()
        fmt.Println(unix_time)
        fmt.Println(time.Unix(unix_time, 0).Format("2006-01-02 15:04:05"))
    }
    // 使用time.ParseInLocation 返回本地时间
    the_time, err = time.ParseInLocation("2006-01-02 15:04:05""2017-08-09 12:34:56", time.Local)
    if err == nil {
        unix_time := the_time.Unix()
        fmt.Println(unix_time)
        fmt.Println(time.Unix(unix_time, 0).Format("2006-01-02 15:04:05"))
    }
}

获取星期

获取当前时间星期常用方法:

func (t Time) Weekday() Weekday

返回时间点t对应的那一周的周几。

func (d Weekday) String() string

String返回该日(周几)的英文名("Sunday"、"Monday",……)

代码实现:

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    weeks := now.Weekday().String()
    fmt.Println(weeks)
}


(2)

分享至