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



  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值