企业信用网站建设,河南安阳市有几个县,中小型网站建设信息,人才网站的seo怎么做目录 strconv包1、string与bool之间的转换2、string与int之间的转换 time包1、常用常量定义2、Now#xff08;#xff09;获取当前年月日时分秒3、Format#xff08;#xff09;时间格式化4、Parse#xff08;#xff09;/ ParseInLocation#xff08;#xff09;解析时… 目录 strconv包1、string与bool之间的转换2、string与int之间的转换 time包1、常用常量定义2、Now获取当前年月日时分秒3、Format时间格式化4、Parse/ ParseInLocation解析时间 str → \rightarrow →Time对象4、时间戳、时间戳 → \rightarrow →Time对象5、时间运算 rand包 strconv包 string转其他的过程为Parse(解析) 其他转string的过程为Format(格式化) 1、string与bool之间的转换
string → \rightarrow →bool strconv.ParseBool()
源码
// ParseBool returns the boolean value represented by the string.
// It accepts 1, t, T, TRUE, true, True, 0, f, F, FALSE, false, False.
// Any other value returns an error.
func ParseBool(str string) (bool, error) {switch str {case 1, t, T, true, TRUE, True:return true, nilcase 0, f, F, false, FALSE, False:return false, nil}return false, syntaxError(ParseBool, str)
}bool → \rightarrow →string strconv.FormatBool()
源码
// FormatBool returns true or false according to the value of b.
func FormatBool(b bool) string {if b {return true}return false
}2、string与int之间的转换
string → \rightarrow →int func ParseInt(s string, base int, bitSize int) (i int64, err error)
源码
func ParseInt(s string, base int, bitSize int) (i int64, err error)
//参数解释
//s为原字符串
//base为解读字符串所采用的进制
//bitSize为存转换数字所用字节数 一般默认64即可str : 101
res, err : strconv.ParseInt(str, 2, 64)
fmt.Println(res, err) //5 nil 采用二进制解读该串前缀符号
str : -101//允许串存在前导符号‘’或‘-’
res, err : strconv.ParseInt(str, 2, 64)
fmt.Println(res, err) //-5 nil 采用二进制解读该串base为0
str : -0x101
res, err : strconv.ParseInt(str, 0, 64)//如果base为零则通过s串推断例如二进制前缀0b八进制前缀0...详解请查看源码
fmt.Println(res, err) //-257(116^2) nil 采用16进制(0x为十六进制前缀)解读该串简便方式(Atoi)与使用ParseInt()函数base为10bitSize为64效果相同
str : -101
res, _ : strconv.Atoi(str)
fmt.Printf(%T %d\n, res, res)//int -101int → \rightarrow →string func FormatInt(i int64, base int) string
s : strconv.FormatInt(-257, 16)
fmt.Printf(%T %v\n, s, s) //string -101简便方式(Itoa)与使用FormatInt()函数base为10效果相同
i : -345
res : strconv.Itoa(i)
fmt.Printf(%T %s\n, res, res)time包
1、常用常量定义 2、Now获取当前年月日时分秒
源码 now : time.Now()
fmt.Println(now) //2024-09-05 22:09:12.0153971 0800 CST m0.001031601
//0800 表示东八区即UTC时间加上8小时。中国大部分地区都位于东八区。
//CST China Standard Time
year : now.Year()
month : now.Month()
day : now.Day()
hour : now.Hour()
minute : now.Minute()
second : now.Second()
fmt.Printf(%d-%02d-%02d %02d:%02d:%02d\n, year, month, day, hour, minute, second)//2024-09-05 22:06:19 3、Format时间格式化
源码
now : time.Now()
//layout参数是固定的2006-01-02 15:04:05 此时间为GO语言诞生的时间1月2号下午3点4分5秒
//用/ 、:、 -分割均可
fmt.Println(now.Format(2006-01-02 15:04:05))//2024-09-05 22:35:57
fmt.Println(now.Format(2006/01/02 03:04)) //2024/09/05 10:504、Parse/ ParseInLocation解析时间 str → \rightarrow →Time对象
now : time.Now()
str : now.Format(2006-01-02 15:04:05)//func Parse(layout, value string) (Time, error)
t1, _ : time.Parse(2006-01-02 15:04:05, str)
fmt.Println(t1) //2024-09-08 11:44:01 0000 UTC//func LoadLocation(name string) (*Location, error)
loc, _ : time.LoadLocation(Asia/Shanghai)
fmt.Printf(%T %v\n, loc, loc) //*time.Location Asia/Shanghai
//func ParseInLocation(layout, value string, loc *Location) (Time, error)
t2, _ : time.ParseInLocation(2006-01-02 15:04:05, str, loc)
fmt.Println(t2) //2024-09-08 11:44:01 0800 CST小结技巧 首先ParseInLocation方法需要一个*Location类型的参数于是我们通过寻找time包下哪一个方法返回值类型为*Location通过筛选后可以发现只有最合适因此完美契合。 全部时区列表 4、时间戳、时间戳 → \rightarrow →Time对象
now : time.Now()
//时间戳Unix1970.1.1 00:00:00 - 当下的一个秒数
fmt.Println(now.Unix())//1725777952//时间戳--Time对象
timeobj : time.Unix(now.Unix(), 0)
fmt.Println(timeobj)//2024-09-08 14:45:52 0800 CST5、时间运算
now : time.Now()
fmt.Println(now) //2024-09-08 15:37:11.5696332 0800 CST m0.000501801//加
r1 : now.Add(time.Hour)
fmt.Println(r1) //2024-09-08 16:37:11.5696332 0800 CST m3600.000501801//两个时间之间的插值
r2 : now.Sub(r1)
fmt.Println(r2) //-1h0m0s//时间比较
fmt.Println(now.Equal(r1)) //false
fmt.Println(now.Before(r1)) //true
fmt.Println(now.After(r1)) //falserand包 //生成五个随机数for i : 0; i 5; i {fmt.Println(i:, rand.Intn(10))}现在放法已经是一个待删的状态了应该已经实现了完全随机并不是伪随机了所以我们不需要先拨种子了。