轉(zhuǎn)換方法:1、使用SimpleDateFormat來(lái)格式化時(shí)間;2、使用“org.apache.commons.lang3.time.DateUtils”來(lái)格式化時(shí)間;3、使用DateTimeFormatter來(lái)格式化時(shí)間。
本教程操作環(huán)境:windows7系統(tǒng)、java8版、DELL G3電腦。
String轉(zhuǎn)Date常見三種方式:SimpleDateFormat、org.apache.commons.lang3.time.DateUtils、DateTimeFormatter(Java 8)
描述 | |
---|---|
SimpleDateFormat | 線程不安全、文本匹配靈活 |
DateUtils |
工具類、支持日期運(yùn)算 |
DateTimeFormatter |
線程安全、配合LocalDateTime支持鏈?zhǔn)骄幊獭⒎奖惚容^運(yùn)算 |
下面為示例代碼
/** * 指定當(dāng)前時(shí)間-指定時(shí)間是否大于30秒 */ //SimpleDateFormat private static void m1() throws ParseException { String endTime = "哈哈2020-02-07 18:58:02.0你好";//支持特殊格式轉(zhuǎn)換 String format = "哈哈yyyy-MM-dd HH:mm:ss"; SimpleDateFormat sdf = new SimpleDateFormat(format); Date edate = sdf.parse(endTime); Date now = new Date(); String nowStr = DateFormatUtils.format(now, format); if(DateUtils.addSeconds(edate, 30).before((now))){ logger.info("true endTime={} now={}",endTime, nowStr); }else{ logger.info("false endTime={} now={}",endTime, nowStr); } } //DateUtils private static void m3() throws ParseException { String endTime = "2020-02-07 18:58:02.0"; String format = "yyyy-MM-dd HH:mm:ss"; Date edate = DateUtils.parseDate(endTime, format, "yyyy-MM-dd HH:mm:ss.SSS");//支持多格式匹配 Date now = new Date(); String nowStr = DateFormatUtils.format(now, format); if(DateUtils.addSeconds(edate, 30).before((now))){ logger.info("true endTime={} now={}",endTime, nowStr); }else{ logger.info("false endTime={} now={}",endTime, nowStr); } } //DateTimeFormatter private static void m2(){ String endTime = "2020-02-07 18:58:02"; String format = "yyyy-MM-dd HH:mm:ss"; LocalDateTime now = LocalDateTime.now(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(format); String nowStr = now.format(dateTimeFormatter); if(LocalDateTime.parse(endTime, dateTimeFormatter) .plusSeconds(30).isBefore(LocalDateTime.now())){//鏈?zhǔn)骄幊? logger.info("true endTime={} now={}",endTime, nowStr); }else{ logger.info("false endTime={} now={}",endTime, nowStr); } }
相關(guān)視頻教程推薦:Java視頻教程