全球以英國倫敦格林威治作為零度經(jīng)線的起點(diǎn),每隔15經(jīng)度為一個時(shí)區(qū),15度經(jīng)線為該時(shí)區(qū)的中央經(jīng)線,共分為24個時(shí)區(qū)。由西向東每隔15經(jīng)度增加一個時(shí)區(qū),相反的,每向西15經(jīng)度減少一個時(shí)區(qū)。中國所在時(shí)區(qū)為東8區(qū)。
在漳縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),漳縣網(wǎng)站建設(shè)費(fèi)用合理。
當(dāng)前時(shí)間 time.Now() 返回的是當(dāng)?shù)貢r(shí)區(qū)的時(shí)間:
CST可以代表如下四個不同的時(shí)區(qū):
time.Now() 返回的 +0800 CST 表示的就是中國標(biāo)準(zhǔn)時(shí)間,與UTC時(shí)間有如下的轉(zhuǎn)化:
Wall Clocks表示掛鐘時(shí)間,存儲的是自1970 年 1 月 1 日 0 時(shí) 0 分 0 秒以來的時(shí)間戳,當(dāng)系統(tǒng)和授時(shí)服務(wù)器進(jìn)行校準(zhǔn)時(shí)間時(shí)間操作時(shí),有可能造成這一秒是2018-1-1 00:00:00,而下一秒變成了2017-12-31 23:59:59的情況。
Monotonic Clocks,意思是單調(diào)時(shí)間的,所謂單調(diào),就是只會不停的往前增長,不受校時(shí)操作的影響,這個時(shí)間是自進(jìn)程啟動以來的秒數(shù)。
time.Now() 返回的 m=+0.004002201 就是表示Monotonic Clocks
go語言中如果不設(shè)置指定的時(shí)區(qū),通過 time.Now() 獲取到的就是本地時(shí)區(qū)
設(shè)置時(shí)區(qū)有兩種方式:
固定時(shí)區(qū)到東八區(qū)。但這種不是對程序的全局設(shè)置,每次獲取時(shí)都需要固定時(shí)區(qū)
加載指定時(shí)區(qū)。但如果沒有g(shù)o環(huán)境使用這種方式就會加載失敗,因?yàn)闀r(shí)區(qū)信息是放在go的安裝包中的。
如果你用第二種方式加載時(shí)區(qū),在打docker鏡像時(shí)就需要進(jìn)行時(shí)區(qū)相關(guān)的配置,配置文件如下:
參考文章:
題主是否向詢問“go語言用time能計(jì)算出工齡”?能。Go是一種開源的程序設(shè)計(jì)語言。go語言是專門利用time進(jìn)行計(jì)算出工齡的,是能計(jì)算出工齡的,Go語言是編譯型語言。
select 語句使得一個 goroutine 在多個通訊操作上等待。
select 會阻塞,直到條件分支中的某個可以繼續(xù)執(zhí)行,這時(shí)就會執(zhí)行那個條件分支。當(dāng)多個都準(zhǔn)備好的時(shí)候,會隨機(jī)選擇一個。
復(fù)制代碼代碼如下:
package main
import "fmt"
func fibonacci(c, quit chan int) {
x, y := 1, 1
for {
select {
case c - x:
x, y = y, x + y
case -quit:
fmt.Println("quit")
return
}
}
}
func main() {
c := make(chan int)
quit := make(chan int)
go func() {
for i := 0; i 10; i++ {
fmt.Println(-c)
}
quit - 0
}()
fibonacci(c, quit)
}
默認(rèn)選擇
當(dāng) select 中的其他條件分支都沒有準(zhǔn)備好的時(shí)候,default 分支會被執(zhí)行。
為了非阻塞的發(fā)送或者接收,可使用 default 分支:
select {
case i := -c:
// use i
default:
// receiving from c would block
}
復(fù)制代碼代碼如下:
package main
import (
"fmt"
"time"
)
func main() {
tick := time.Tick(1e8)
boom := time.After(5e8)
for {
select {
case -tick:
fmt.Println("tick.")
case -boom:
fmt.Println("BOOM!")
return
default:
fmt.Println(" .")
time.Sleep(5e7)
}
}
}
1、簡單易學(xué)。
Go語言的作者本身就很懂C語言,所以同樣Go語言也會有C語言的基因,所以對于程序員來說,Go語言天生就會讓人很熟悉,容易上手。
2、并發(fā)性好。
Go語言天生支持并發(fā),可以充分利用多核,輕松地使用并發(fā)。 這是Go語言最大的特點(diǎn)。
描述
Go的語法接近C語言,但對于變量的聲明有所不同。Go支持垃圾回收功能。Go的并行模型是以東尼·霍爾的通信順序進(jìn)程(CSP)為基礎(chǔ),采取類似模型的其他語言包括Occam和Limbo,但它也具有Pi運(yùn)算的特征,比如通道傳輸。
在1.8版本中開放插件(Plugin)的支持,這意味著現(xiàn)在能從Go中動態(tài)加載部分函數(shù)。
與C++相比,Go并不包括如枚舉、異常處理、繼承、泛型、斷言、虛函數(shù)等功能,但增加了 切片(Slice) 型、并發(fā)、管道、垃圾回收、接口(Interface)等特性的語言級支持。