Scala 將時間字串轉為時間戳
阿新 • • 發佈:2019-01-05
今天需要將Nginx日誌中的時間字串轉為時間戳,再加以分析,由於剛學Scala不久,Java也只是一知半解,所以在時間轉換的時候浪費了一些時間,故在此備忘,也希望能幫到有需要的同學。
部分日誌格式如下圖:
需要將
[30/Jun/2015:05:00:47 +0800]
格式的時間轉為時間戳。怎麼辦呢?
稍微差了一些資料,得知可以呼叫Java跟時間相關的包。時間的一些格式說明如下圖:
於是我開始測試:
import java.text.SimpleDateFormat import java.util.Date val fm = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss") val tm = "30/Jun/2015:05:00:50" tm.replace("Jul","06") val dt = fm.parse(tm); dt.getTime()
但是居然報錯了:
什麼情況?感覺確實沒問題啊!想不明白。
於是去QQ群裡請教大神,得知原因是:系統的時間格式為中文格式,應該改為中文格式。得到了解決辦法:
OK,問題終於解決!import java.util.Locale import java.text.SimpleDateFormat import java.util.Date val loc = new Locale("en") val fm = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss",loc) val tm = "30/Jul/2015:05:00:50" val dt2 = fm.parse(tm); dt2.getTime()