Scala 将时间字符串转为时间戳

    今天需要将Nginx日志中的时间字符串转为时间戳,再加以分析,由于刚学Scala不久,Java也只是一知半解,所以在时间转换的时候浪费了一些时间,故在此备忘,也希望能帮到有需要的同学。

   部分日志格式如下图:

   

   需要将

[30/Jun/2015:05:00:47 +0800]
  格式的时间转为时间戳。怎么办呢?

   稍微差了一些资料,得知可以调用Java跟时间相关的包。时间的一些格式说明如下图:Scala 将时间字符串转为时间戳_第1张图片

于是我开始测试:

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,问题终于解决!



你可能感兴趣的:(scala,时间转换)