我正在嘗試解析日志文件以獲取過去X小時(shí)內(nèi)的錯(cuò)誤計(jì)數(shù)。192.168.0.1 - - [11/Feb/2021:06:42:16 +0000] "POST /a/b/c/d/e HTTP/1.1" 200 28 "-" "-" 9104144117 "example" "http://example:8080" 102ms192.168.0.1 - - [11/Feb/2021:11:42:16 +0000] "POST /a/b/c/d/e HTTP/1.1" 200 28 "-" "-" 9104144155 "example" "http://example2:8080" 91ms192.168.0.1 - - [11/Feb/2021:12:42:16 +0000] "POST /a/b/c/d/e HTTP/1.1" 200 28 "-" "-" 9104144155 "example" "http://example3:8080" 91ms輸出:200 2 http://example:8080400 3 http://example2:8080500 10 http://example:8080我想要日志文件中當(dāng)前時(shí)間和X小時(shí)時(shí)間之間的差異。因此,我可以在最后一小時(shí)內(nèi)收到錯(cuò)誤。我嘗試使用時(shí)間。Parse() 但它不接受日志文件中提到的日期格式。將日志行時(shí)間轉(zhuǎn)換為此處提到的特定格式是一個(gè)好主意,https://golang.org/pkg/time/#pkg-constants 還是應(yīng)該將其轉(zhuǎn)換為持續(xù)時(shí)間?此代碼提供了錯(cuò)誤的信息。因?yàn)楦袷讲徽_。 then, _ := time.Parse("01-JAN-1970 00:00:00", "11-Feb-2021 11:42:16") fmt.Println(then) lTime := then.Add(-1 * time.Hour) fmt.Println(lTime)
1 回答

嗶嗶one
TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
所以為了你的時(shí)間。Parse(...) 當(dāng)您在第一個(gè)參數(shù)中指定格式時(shí),必須使用非常特定的值。
(抱歉,我不知道這在文檔中的位置,我只是在需要引用它時(shí)總是去源代碼)https://github.com/golang/go/blob/master/src/time/format.go#L92
所以對你來說:
"01-JAN-1970 00:00:00"
應(yīng)該是"01-Jan-2006 03:04:05"
使用給定引用中正確格式的常量值的示例。https://play.golang.org/p/MUNqaFQHjVJ
編輯:
對于使用 format.go 引用的強(qiáng)調(diào),即值(月、小時(shí)、秒等),語法“01/Jan/2006”或“01-Jan-2006”或“01--Jan--2006”都是解析時(shí)間的有效方法。
Go 允許非常靈活地解析基于字符串的日期。
下面是另一個(gè)格式示例:https://play.golang.org/p/kEyZEDpu-6N"01/Jan/2006 03:04:05"
- 1 回答
- 0 關(guān)注
- 145 瀏覽
添加回答
舉報(bào)
0/150
提交
取消