重点: 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
}