golang时间格式化
格式化输出时间:
package main
import (
"fmt"
"time"
)
func main(){
//未格式化
fmt.Println(time.Now().Unix())
//只取年
fmt.Println(time.Now().Format("2006"))
//只取月
fmt.Println(time.Now().Format("01"))
//所有全部格式化输出
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
}
必须是这个时间点, 据说是go诞生之日
格式化输出
func testprint(){
str1 := "haha"
str2 := "2020-09"
str3 := "23"
str := fmt.Sprintf("%[1]s/%[3]s/.json.gz",str1,str2,str3)
fmt.Println(str)
}
***运行结果***
haha/23/.json.gz
func testprint(){
str1 := "haha"
str2 := "2020-09"
str3 := "23"
str := fmt.Sprintf("%[1]s/%[2]s/.json.gz",str1,str2,str3)
fmt.Println(str)
}
***运行结果***
haha/2020-09/.json.gz
可见序号的功能是指定后面输出的变量。
创建目录
os.Mkdir("abc", os.ModePerm) //创建目录
os.MkdirAll("dir1/dir2/dir3", os.ModePerm) //创建多级目录
运算符
- Go语言还提供了以下的bit位操作运算符,前面4个操作运算符并不区分是有符号还是无符号数:
& 位运算 AND
| 位运算 OR (有一个为1则为1)
^ 位运算 XOR
&^ 位清空 (AND NOT)
<< 左移
>> 右移
新建文件
f, err := os.OpenFile(filename_tmp, os.O_WRONLY|os.O_CREATE, 0755)
中间的表示写的模式
omitempty的用法
omitempty作用是在json数据结构转换时,当该字段的值为该字段类型的零值时,忽略该字段。
例子:
type AggregatedSample struct {
MostRecentSuccess *TimeVersionIP `json:"tls-full,omitempty"`
MostRecentPartial *TimeVersionIP `json:"tls-SH,omitempty"`
Bitmaps Bitmaps `json:"tls-ver-bitmaps"`
SeenRefuse bool `json:"443_refused"` //可见拒绝
}
可参考:https://blog.csdn.net/skh2015java/article/details/90720692
模糊的知识点
- os.Stat()、os.IsNotExist
- flock.New()
- sync.RWMutex中的Rlock,RUnlock
- 一些代码顺序不是很清楚