Go 學習筆記 標準庫之 time 包

2021-08-14 07:44:44 字數 1188 閱讀 5871

go 有很多內建的標準庫,裡面封裝了很多開發中會用到的一些函式,使用這些函式可以簡化**,提高開發效率。time 包就是其中之一,它裡面封裝了處理日期時間需要用到的一些功能。

今天因為要做乙個功能,稍微了解了一下 time 包,官方文件,暫時先將這個功能裡面需要用到的一些方法記錄下來,以後碰到其他的知識再繼續往這裡新增。

需求是這樣的,管理後台要做幾個功能,分別為:按時間範圍查詢資料庫、快速查昨天的資料、快速查今天的資料,要實現這幾個功能,就必然需要按某個時間範圍去資料庫中查資料,下面就簡單介紹下處理方法。

獲取當前時間及當天的其他時間點

now := time.now()
這個很簡單,獲取到當前時間 now 後就可以對 now 進行操作,來修改這個時間,比如說獲取當天的零點,可以這樣

today := time.date(now.year(),now.month(),now.day(),0,0,0,0,time.local)
這樣就直接將時間設定為了當天的零點,同樣的,要獲得其他的時間點,修改相應的引數即可,最後乙個引數一般傳入自己當地的時區即可。比如上面的 time.local

獲取其他日期

拿到了今天的時間後,可以通過 adddate 這個函式來增加或減少時間,比如我上面獲得了當天的零點,現在要獲得昨天的零點,可以這樣

yesterday :=today .adddate(0,0,-1)
把日期減去一天,就是昨天的時間了。

獲取時間戳

如果需要將時間轉化為時間戳,需要使用 unix 這個方法

begin :=yesterday.unix()
時間的格式化

如果需要將乙個時間字串格式化為乙個時間型別,可以用下面的方法

ttt,err := time.parseinlocation("2006-01-02 15:04:05",val,time.local)
「2006-01-02 15:04:05」 是 go 語言的初始時間,這個字串表示的是需要格式化成的時間格式為 「yyyy-mm-dd hh:mm:ss」 , val 為要格式化的時間(string型別),最後為時區。

time 包的簡要介紹就先到這裡了,上面的都是平時用的比較多的一些方法,如果覺得 time 包不夠方便,還有一些第三方封裝的包可以用,比如這個

23 Go語言標準庫之time包

時間和日期是我們程式設計中經常會用到的,本文主要介紹了go語言內建的time包的基本用法。time包提供了時間的顯示和測量用的函式。日曆的計算採用的是公曆。time.time型別表示時間。我們可以通過time.now 函式獲取當前的時間物件,然後獲取時間物件的年月日時分秒等資訊。示例 如下 func...

Go語言標準庫之time

時間的格式化和解析package main import fmt time func main 輸出結果是 2019 01 01 10 45 502019 01 01 10 45 50 2019年01月01日 10 45 50在系統中還提供了一些預設的格式 ansic mon jan 2 15 04...

golang標準庫 time包

時間型別,包含了秒和納秒以及location type month int 月份.定義了十二個月的常量 type weekday int 周,定義了一周的七天 type duration int64 持續時間.定義了以下持續時間型別.多用於時間的加減 需要傳入duration做為引數的時候.可以直接...