日期时间解析的问题

今天在做一个日期解析的时间工具的时候出现了问题

问题描述:

第一版本:new SimpleDateFormat("dd/mmm/yyyy:HH:mm:ss Z",Locale.ENGLISH)

此处mmm 和 mm字符重复了,直接就unparaseable了

下面是正确的版本

/**
  * Created by Administrator on 2017/7/4.
  * 日期时间解析工具
  * 出现问题:时间格式上出现了,dd/mmm/yyyy:HH:mm:ss Z;这样是解析不了的,因为有mmm和mm
  */
object DateUtils {
  /**
    *   10/Nov/2016:00:01:02 +0800  ==>>   yyyy-mm--dd HH:MM:SS
    */
    //输入文件格式:10/Nov/2016:00:01:02 +0800
  val YYYYMMDDHHMM_TIME_FORMAT = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z",Locale.ENGLISH)
  //目标日期格式:yyyy-mm--dd HH:MM:SS
  val TARGET_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS")
  /**
    * 获取输入日志时间:long类型
    * time:[10/Nov/2016:00:01:02 +0800]
    */
  def getTime(time:String)  = {
  try {
      YYYYMMDDHHMM_TIME_FORMAT.parse(time.substring(time.indexOf("[") + 1,time.lastIndexOf("]"))).getTime
    }catch{
      case e:Exception =>{
        0l
      }
    }
  }
  /**
    *获取时间:yyyy-MM-dd HH:mm:ss
    * @param time
    */
  def Parse(time:String) = {
    TARGET_FORMAT.format(new Date(getTime(time)))
  }
  def main(args: Array[String]) = {
    println(Parse("[10/Nov/2016:00:01:02 +0800]"))
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值