小抄系列高階篇涉及的概念較多,知識點重要,故每塊知識點獨立成篇,方便日後筆記的查詢web開發經常需要展示時間,轉換時間,對於時間的使用是非常頻繁的。為此對於go語言中的時間操作這個技能樹務必給它加滿技能點!
本篇的主題是:time包
時間單位換算:time包常用操作彙總如下:1年 = 365天
1天 = 24小時
1小時 = 60分鐘
1分鐘 = 60秒
1秒 = 1000毫秒
1毫秒 = 1000微秒
1微秒 = 1000納秒
1納秒 = 1000皮秒
package main
import (
"fmt"
"math/rand"
"time"
)func main() else
//5.從時間物件去獲取對應的具體的某些時間資訊
獲取t1時間的年月日
year, month, day := t1.date()
fmt.printf("year:%t, month:%t, day:%t\n", year, month, day) //year:int, month:time.month, day:int
fmt.println(year, month, day) //2021 february 16
獲取時分秒
hour, min, sec := t1.clock()
fmt.printf("hour:%t, min:%t, sec:%t\n", hour, min, sec) //hour:int, min:int, sec:int
fmt.println(hour, min, sec) //3 54 37
單獨獲取個資料
t1.year() //獲取年
t1.month() //獲取月
t1.day() //獲取日
t1.hour() //獲取時
t1.minute() //獲取分
t1.second() //獲取秒
t1.nanosecond() //獲取納秒
t1.yearday() //獲取該年一共過了多少天
fmt.println(t1.weekday()) //tuesday 獲取為週幾
//時間戳:指定日期距離2023年1月1日0點0分0秒的時間差值,單位為秒或納秒
t1.unix() //獲取時間戳 單位/s
t1.unixnano() //獲取時間戳 單位/ns
//6.時間間隔
在原有時間的基礎上去增加或減少時間
fmt.println(t1) //2021-02-16 03:54:37.561962676 +0800 cst m=+0.000074931
//t4 := t1.add(time.hour * 24) //表示在該時間上加上一天
t4 := t1.add(time.minute * 20) //表示在該時間上加上20分鐘
//t4 := t1.add(time.second * 20) //表示在該時間上加上20秒
//t4 := t1.add(time.nanosecond * 20) //表示在該時間上加上20納秒
fmt.println(t4) //2021-02-16 04:14:37.561962676 +0800 cst m=+0.000074931
t5 := t1.adddate(1, 0, 0) //按日期去新增,引數分別是年月日
fmt.println(t5) //t1基礎上增加一年的時間
兩個時間的差值
d := t5.sub(t1)
fmt.println(d) //8760h0m0s 8760小時0分0秒的意思
//7.睡眠
rand.seed(time.now().unixnano())
n := rand.intn(10) + 1 //[1,10]返回的隨即數
//需要duration型別,雖然其底層型別也是int64,但是因為使用了type定義,所以不是同乙個型別,要去強轉一下才能用
time.sleep(time.duration(n) * time.minute) //程式睡眠[0-10]秒再繼續執行,這在很多語言中都有,操作基本一樣
}
關於時間的常用操作,還有一些方法是需要搭配"通道"使用的,待學習到通道的時候再補上本系列學習資料參考:千鋒的茹姐
我的docker命令小抄
運維的同學幫忙配置好了乙個docker的映象,但是docker映象執行的時候沒有掛載我想要的目錄,這個時候我需要一頓操作來滿足我的要求。根據上面檢視命令的結果得到的container id為4c774d7a39fc sudo docker commit 4c774d7a39fc hdfs clien...
golang多核的使用
實際上協程只是發生在單個程序內部的,要是想充分的發掘多核cpu的潛力,還是需要多程序的支援。對於多核程式設計,go是天生支援,那麼我們在什麼情況下應該用多核心來加速程式,而在什麼情況下用單核即可呢?現在我們用一簡單的程式來說明下 定義任務佇列 varwaitgroup sync waitgroup ...
Golang陣列的傳遞
陣列與切片 陣列是具有相同唯一型別的一組已編號且長度固定的資料項序列。陣列長度最大為2gb,它是值型別。切片是對陣列乙個連續片段的引用,所以切片是乙個引用型別。按值傳遞和按引用傳遞 go語言中函式的引數有兩種傳遞方式,按值傳遞和按引用傳遞。go預設使用按值傳遞來傳遞引數,也就是傳遞引數的副本。在函式...