标签:01 语言 err fmt Println time GO now
time标准库
time包
时间类型
时间间隔
定时器
时间格式化 2006-01-02 15:04:05.000
- 2006:年(Y)
- 01:月(m)
- 02:日(d)
- 15:时(H)
- 04:分(M)
- 05:秒(S)
- 格式化为12小时格式,在格式化布局中添加PM
- 小数部分保留指定位数写0,省略末尾可能的0写 9
package main
import (
"fmt"
"time"
)
// time
func f1() {
now := time.Now() // 获取当前时间
fmt.Printf("current time:%v\n", now)
year := now.Year() // 年
month := now.Month() // 月
day := now.Day() // 日
hour := now.Hour() // 小时
minute := now.Minute() // 分钟
second := now.Second() // 秒
fmt.Println(year, month, day, hour, minute, second)
timestamp := now.Unix() // 秒级时间戳
milli := now.UnixMilli() // 毫秒时间戳 Go1.17+
micro := now.UnixMicro() // 微秒时间戳 Go1.17+
nano := now.UnixNano() // 纳秒时间戳
fmt.Println(timestamp, milli, micro, nano)
// 将秒级时间戳转为时间对象(第二个参数为不足1秒的纳秒数)
timeObj := time.Unix(timestamp, 22)
fmt.Println(timeObj)
later := now.Add(time.Hour) // 当前时间加1小时后的时间
fmt.Println(later)
// Sub 两个时间相减
nextYear, err := time.Parse("2006-01-02", "2022-01-01")
if err != nil {
fmt.Printf("parse time failed, err:%v\n", err)
return
}
d := now.Sub(nextYear)
fmt.Printf("d:%v\n", d)
// ticker := time.Tick(time.Second) //定义一个1秒间隔的定时器
// for i := range ticker {
// fmt.Println(i) //每秒都会执行的任务
// }
// 格式化时间 把语言中时间对象 转换成字符串类型的时间
fmt.Println(now.Format("2006-01-02"))
fmt.Println(now.Format("2006/01/02 15:04:05"))
fmt.Println(now.Format("2006/01/02 03:04:05 PM"))
// 小数点后写0,因为有3个0所以格式化输出的结果也保留3位小数
fmt.Println(now.Format("2006/01/02 15:04:05.000")) //
// 小数点后写9,会省略末尾可能出现的0
fmt.Println(now.Format("2006/01/02 15:04:05.999"))
// 解析字符串格式的时间
// 在没有时区指示符的情况下,time.Parse 返回UTC时间
timeObj, err = time.Parse("2006-01-02", "2022-07-15")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(timeObj)
fmt.Println(timeObj.Unix())
// time.Sleep(15 * time.Second)
fmt.Println("sleep 10 seconds")
n := 10
time.Sleep(time.Duration(n) * time.Second)
fmt.Println("sleep 10 seconds with sleep time")
}
// 时区
func f2() {
now := time.Now() // 本地的时间
fmt.Println(now)
// 明天的这个时间
// 按照指定格式去解析一个字符串格式的时间
time.Parse("2006-01-02 15:04:05", "2022-07-18 15:04:05")
// 按照东八区的时区和格式去解析一个字符串格式的时间
loc, err := time.LoadLocation("Asia/Shanghai")
if err != nil {
fmt.Printf("load loc failed, err:%v\n", err)
return
}
// 安装指定时区解析时间
timeObj, err := time.ParseInLocation("2006-01-02 15:04:05", "2022-07-17 11:04:05", loc)
if err != nil {
fmt.Printf("parse time failed, err:%v\n", err)
return
}
fmt.Println(timeObj)
// 时间对象相减
td := timeObj.Sub(now)
fmt.Println(td)
}
func main() {
// f1()
f2()
}
标签:01,语言,err,fmt,Println,time,GO,now 来源: https://www.cnblogs.com/QiaoPengjun/p/16511222.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。