常用标准库
约 473 字大约 2 分钟
2025-04-27
time
获取当前时间
import "time"
now := time.Now()
fmt.Println(now) // 2025-04-14 14:12:06.xxxxxx +0800 CST
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() // 秒级时间戳
timeStamp2 := now.UnixNano() // 纳秒级时间戳时间运算
// Add 方法:加一段时间
later := now.Add(time.Hour) // 1小时后
// 注意:time.Duration 表示纳秒,time.Second 表示1秒时间格式化
Go 有独特的参考时间格式(2006年1月2日15点04分05秒):
t := now.Format("2006-01-02 15:04:05")
fmt.Println(t) // 2025-04-14 14:12:06定时器
ticker := time.Tick(time.Second)
for i := range ticker {
fmt.Println(i) // 每秒执行一次
}math
数学运算
import "math"
// 幂运算
math.Pow(2, 63) // 2^63
// 平方根
math.Sqrt(46.5) // 6.82...
// 绝对值
math.Abs(-3.14) // 3.14int64 最大值
import "math"
fmt.Printf("%.0f\n", math.Pow(2, 63)) // 9223372036854775808
var n1 int = 9223372036854775807 // int64 最大值:2^63 - 1
// var n2 int = 9223372036854775808 // 编译错误 ❌ 超出范围os(文件操作)
打开文件
import "os"
// 方式1:os.Open(只读)
file1, err := os.Open("test.txt")
if os.IsNotExist(err) {
fmt.Println("文件不存在")
} else if err != nil {
fmt.Println("文件访问异常")
} else {
fmt.Println("文件读取成功")
}
defer file1.Close()以读写模式打开文件
// 方式2:os.OpenFile(可读写,文件不存在时自动创建)
file2, err := os.OpenFile("test.txt", os.O_RDWR|os.O_CREATE, 0666)
defer file2.Close()获取文件信息
file3, err := os.Stat("test.txt")
if err == nil {
fmt.Printf("%+v", file3) // 输出文件详细信息
}读取文件内容
content, err := os.ReadFile("test.txt")
if err == nil {
fmt.Println(string(content))
}监视文件变化
for {
time.Sleep(2 * time.Second)
content, err := os.ReadFile("main.txt")
if err != nil {
log.Print(err)
}
fmt.Println(string(content))
}runtime
// 获取系统架构
os := runtime.GOARCH
fmt.Println(os) // amd64sort
import "sort"
ages := []int{3, 5, 12, 1, 45, 55}
// 升序
sort.Ints(ages)
// 降序
sort.Sort(sort.Reverse(sort.IntSlice(ages)))strings
import "strings"
// 检查字符串是否包含子串
contains := strings.Contains("hello world", "hello")
fmt.Println(contains) // true