常见内置包
引用:漫画 Go 语言 纯手绘版 - haojiahuo - 掘金小册 (juejin.cn)
strings
//s1是否包含指定内容 返回bool类型
strings.Contains(s1,"go"))
//是否包含指定的字符串中任意一个字符 有一个出现过 就返回true strings.ContainsAny(s1,"glass")
//返回指定字符出现的次数 strings.Count(s1,"g")
//文本的开头 strings.HasPrefix(s1,"ok") //文本的结尾 strings.HasSuffix(s1,".txt")
//查找指定字符在字符串中存在的位置 如果不存在返回-1
strings.Index(s1,"g")
//查找字符中任意一个字符出现在字符串中的位置
strings.IndexAny(s1,"s")
//查找指定字符出现在字符串中最后一个的位置
strings.LastIndex(s1,"s")
//字符串的拼接
s2:=[]string{"123n","abc","ss"}
s3:=strings.Join(s2,"_")
fmt.Println(s3)// 123n_abc_ss
//字符串的切割
s4:=strings.Split(s3,"_")
fmt.Println(s4)// 返回切片[]string{"123n","abc","ss"}
//字符串的替换
s5 := "okoletsgo"
s6 := strings.Replace(s5, "o", "*", 1)
fmt.Println(s6)//*koletsgo
//TODO 1 只替换1次, -1 全部替换
//字符串的截取
//str[start:end]包含start 不包含end
strconv包
//+号在字符串中表示字符串的连接 在整型中表示数据的计算
//string 转 bool类型
b, err := strconv.ParseBool(s1)
//string 转int
b, err := strconv.ParseInt(s1, 10, 64)
//10 表示s1要转的数据是10进制 64位
//整型转为字符串
s := strconv.Itoa(23)
//字符串转为整型
i, e := strconv.Atoi(s)
//记忆:int to a
time包
时间格式:time.Time类型
获取当前时间t:=time.Now()
//类似于2020-03-31 21:26:01.7307507 +0800 CST m=+0.001999001
年月日时分秒 时区
go语言诞生时间:2006年1月2日 15:04:05
对获取的时间t作格式化:t.Format(“2006年1月2日 15:04:05”)
//这里的年月日 可作替换'-' ,'/' ,而且可选择性地写入部分,但总之需要是这个时间的模板
//字符串类型的时间 str := "2020年3月31日" //第一个参数是模板,第二个是要转换的时间字符串 s, _ := time.Parse("2006年1月2日", str) fmt.Println(s) //打印出的格式就是2020-03-31 00:00:00 +0000 UTC
//获取年月日信息 year, month, day := time.Now().Date()
//获取时分秒信息 hour, minute, second := time.Now().Clock()
//获取今年过了多少天了 tday := time.Now().YearDay()
//获取今天是星期几 weekday := time.Now().Weekday()
时间戳
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。它主要是为用户提供一份电子证据.
//获取当前时间的时间戳
timestamp2 := time.Now().Unix()
fmt.Println(timestamp2) //1585669151
//当前时间的以纳秒为单位的时间戳
timestamp3 := time.Now().UnixNano()
fmt.Println(timestamp3) //1585669151296330900
//时间间隔 相加
now := time.Now()
//当前时间加上一分钟
t := now.Add(time.Minute)
//计算两个时间的间隔
d := t.Sub(now)//1m0s m☞分钟即minute首字母
时间戳与时间格式互转
//将指定时间转为时间戳格式
beforetime := "2020-04-08 00:00:00" //待转化为时间戳的字符串
timeLayout := "2006-01-02 15:04:05" //转化所需模板
loc := time.Now().Location() //获取时区
theTime, _ := time.ParseInLocation(timeLayout, beforetime, loc) //使用模板在对应时区
转化为time.time类型
aftertime := theTime.Unix() //转化为时间戳 类型是
int64
fmt.Println(theTime) //打印输出theTime
2020-04-08 00:00:00 +0800 CST
fmt.Println(aftertime) //打印输出时间戳 1586275200
//再将时间戳转换为日期
dataTimeStr := time.Unix(aftertime, 0).Format(timeLayout) //设置时间戳 使用模板格式化为日期字符串