请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

输出的时间格式不对

package com.imooc.log


import java.text.SimpleDateFormat
import java.util.{Date, Locale}

/**
  * Created by chenjian on 2018/12/27.
  */
object DataUtils {

    //[10/Nov/2016:00:01:02 +0800]  需要转化的时间格式
    val OLD_TIME_FORMAT = new SimpleDateFormat("dd/MM/yyyy:HH:mm:ss Z",Locale.ENGLISH)
    // 目标时间格式
    val TARGET_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

  //获取时间转换
  def parsed(time :String) ={
   TARGET_TIME_FORMAT.format(new Date(getTime(time)))
  }

  //获取日志里面的时间
  //time [10/Nov/2016:00:01:02 +0800]
  def getTime(time: String)  ={
    try{
      OLD_TIME_FORMAT.parse(time.substring(time.indexOf("[") + 1, time.lastIndexOf("]"))).getTime
    }catch {
      case e :Exception => {
        0l
      }
    }
  }

  def main(args: Array[String]): Unit = {

      print(parsed("[10/Nov/2016:00:01:02 +0800]"))
  }


}

为啥我执行的结果就是不对呢。 哪里出了问题?

最后结果就是显示
1970-01-01 08:00:00
Process finished with exit code 0

正在回答 回答被采纳积分+3

2回答

Michael_PK 2018-12-27 21:43:35

光看看不出的,要断点跑起来才知道

0 回复 有任何疑惑可以回复我~
Michael_PK 2018-12-27 21:42:50

parse那打个断点,看看到底哪转换不对

0 回复 有任何疑惑可以回复我~
  • 提问者 Angular_kxtx #1
    public Date parse(String source) throws ParseException
        {
            ParsePosition pos = new ParsePosition(0);
            Date result = parse(source, pos);
            if (pos.index == 0)
                throw new ParseException("Unparseable date: \"" + source + "\"" ,
                    pos.errorIndex);
            return result;
        }
    
    我这里的pos 的值一直是0,不知道是不是有问题。
    回复 有任何疑惑可以回复我~ 2018-12-27 22:56:13
  • Michael_PK 回复 提问者 Angular_kxtx #2
    你直接找个代码对比工具把git上的代码和你现在的代码对比下,看看啥区别
    回复 有任何疑惑可以回复我~ 2018-12-28 05:09:12
  • 提问者 Angular_kxtx 回复 Michael_PK #3
    我仔细比对视频的代码。 不会有错才对,麻烦老师,把你上课的这一段代码给我一下。  我运行一下看看。
    回复 有任何疑惑可以回复我~ 2018-12-28 10:46:17
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号