/ 2019-04-30
更多内容请关注公众号:Go程序员开发
格式化时间转时间戳
格式化时间转时间戳常用函数和方法:
func Date(year int, month Month, day, hour, 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)