go string與time標準包使用簡介

2021-10-20 06:42:35 字數 3522 閱讀 6151

go語言的標準庫覆蓋網路、系統、加密、編碼、圖形等各個方面,可以直接使用標準庫的 http 包進行 http 協議的收發處理;網路庫基於高效能的作業系統通訊模型(linux 的 epoll、windows 的 iocp);所有的加密、編碼都內建支援,不需要再從第三方開發者處獲取

go 語言的編譯器也是標準庫的一部分,通過詞法器掃瞄原始碼,使用語法樹獲得原始碼邏輯分支等。go 語言的周邊工具也是建立在這些標準庫上。在標準庫上可以完成幾乎大部分的需求

go 語言的標準庫以包的方式提供支援,下表是 go 語言標準庫中常見的包及其功能

go語言標準庫包名 功 能

bufio 帶緩衝的 i/o 操作

bytes 實現位元組操作

container 封裝堆、列表和環形列表等容器

crypto 加密演算法

database 資料庫驅動和介面

debug 各種除錯檔案格式訪問及除錯功能

encoding 常見演算法如 json、xml、base64 等

flag 命令列解析

fmt 格式化操作

go go 語言的詞法、語法樹、型別等。可通過這個包進行**資訊提取和修改

html html 轉義及模板系統

image 常見圖形格式的訪問及生成

io 實現 i/o 原始訪問介面及訪問封裝

math 數學庫

net 網路庫,支援 socket、http、郵件、rpc、smtp 等

os 作業系統平台不依賴平台操作封裝

path 相容各作業系統的路徑操作實用函式

plugin go 1.7 加入的外掛程式系統。支援將**編譯為外掛程式,按需載入

reflect 語言反射支援。可以動態獲得**中的型別資訊,獲取和修改變數的值

regexp 正規表示式封裝

runtime 執行時介面

sort 排序介面

strings 字串轉換、解析及實用函式

time 時間介面

text 文字模板及 token 詞法器

fmt(格式化操作)

字串格式化時常用動詞及功能

動 詞 功 能

%v 按值的本來值輸出

%+v 在 %v 基礎上,對結構體欄位名和值進行展開

%#v 輸出 go 語言語法格式的值

%t 輸出 go 語言語法格式的型別和值

%% 輸出 % 本體

%b 整型以二進位制方式顯示

%o 整型以八進位制方式顯示

%d 整型以十進位制方式顯示

%x 整型以十六進製制方式顯示

%x 整型以十六進製制、字母大寫方式顯示

%u unicode 字元

%f 浮點數完整精度輸出;%.2f 2位精度輸出

%p 指標,十六進製制方式顯示

strings(字串操作)

package main

import

("fmt"

"strings"

"strconv"

)func

main()

}

time 包中的常量

const

( nanosecond duration =

1 microsecond =

1000

* nanosecond

millisecond =

1000

* microsecond

second =

1000

* millisecond

minute =

60* second

hour =

60* minute

)

時間的型別為 duration,而 duration 實際是乙個 int64 的型別,可以轉換;

duration.string() 可以將 duration 的值轉為字串

now := time.

now(

)fmt.

printf

("type:%t \n"

, now)

fmt.

printf

("value:%v \n"

, now)

執行結果:

type

:time.time

value:

2019-05

-2517:

57:57.9463214

+0800 cst m=

+0.003026301

自定義時間

格式:func parse(layout, value string) (time, error)

parse 解析乙個格式化的時間字串並返回它代表的時間。

layout 定義輸入的時間格式,value 的時間格式需與 layout 保持一致

t,

error

:= time.

parse

("2006-01-02 15:04:05"

,"2019-05-25 19:00:00")if

error

==nil

執行結果:

time.time

2019-05

-2519:

00:00+

0000 utc

獲取time.time 型別的 年,月,日,時,分,秒

year := time.now().year()

month := time.now().month()

day := time.now().day()

hour := time.now().hour()

minute := time.now().minute()

second := time.now().second()

// 秒級

timestamp := time.

now().

unix()

fmt.

println

(timestamp)

// 毫秒

millitimestamp := time.

now().

unixnano()

/1e6

fmt.

println

(millitimestamp)

// 納秒

nanotimestamp := time.

now().

unixnano()

fmt.

println

(nanotimestamp)

執行結果:

1558782662

1558782662752

1558782662755344000

demo:統計程式執行耗時

func

stats()

func

main()

執行結果:

1001

標準函式time 和localtime

1.time 函式 返回1970 1 1,00 00 00以來經過的秒數 原型 time t time time t calptr 結果可以通過返回值,也可以通過引數得到,見例項 標頭檔案 返回值 成功 秒數,從1970 1 1,00 00 00 可以當成整型輸出或用於其它函式 失敗 1 例 tim...

Python常用標準庫 time

這個time庫提供了各種操作時間值。方法 描述示例 time.asctime tuple 將乙個時間元組轉換成乙個可讀的24個時間字串 time.asctime time.localtime sat nov 12 01 19 00 2016 time.ctime seconds 字串型別返回當前時間...

golang標準庫 time包

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