Scala 將時間字符串轉爲時間戳

    今天需要將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羣裏請教大神,得知原因是:系統的時間格式爲中文格式,應該改爲中文格式。得到了解決辦法:

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()
OK,問題終於解決!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章