SimpleDateFormat 解析 yyyy-MM-ddTHH:mm:ss 带T字符的时间格式

重点: new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
的时候 T 要用 单引号包裹起来,不加 单引号会异常,T在表达式中属于特殊符号

一种错误的方式(特殊字符替换):

/**
     * 时间格式转换
     * @param endTime yyyy-MM-ddTHH:mm:ss.SSS+SSSS
     * @return
     */
    public static String auxGetCommnetTime(String endTime){
        //先替换"T",再替换"+0000"
        endTime = endTime.replaceAll("T"," ").replaceAll("\\+0000","");
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        Date parse = null;
        try {
            parse = simpleDateFormat.parse(endTime);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //需要转化成的时间格式,时间格式自定义
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(parse);
    } 

一种正确的方式:

/**
   * 抽取hourId
   * @param timeStr : 2020-11-27T09:45:00.000
   * @return
   */
  def getHourIdFromTimeStamp(timeStr: String) : String = {
    val sf = new SimpleDateFormat("yyyy-MM-dd\'T\'HH:mm:ss.SSS")
    val tm = sf.parse(timeStr)
    val cal = Calendar.getInstance()
    cal.setTime(tm)
    cal.get(Calendar.HOUR_OF_DAY).toString
  }
上一篇:Java之格林威治时间格式转换成北京时间格式


下一篇:Java日期格式化及其使用例子收集