使用SimpleDateFormat.parse方法解析指定日期字符串的正确模式是什么?
解析
2018-05-21 23:05:51的正确SimpleDateFormat格式模式 嘿,这个问题我太熟了!要把这个日期字符串解析成Date对象,对应的格式模式应该是"yyyy-MM-dd HH:mm:ss",我给你拆解下每个部分的含义,保证一看就明白:
yyyy:对应4位数字的完整年份(这里就是2018)MM:对应2位数字的月份(注意是大写的M,小写m是用来表示分钟的,别搞混了)dd:对应2位数字的日期HH:对应24小时制的小时数(因为你的时间是23点,必须用大写H;如果是12小时制的时间才用小写h)mm:对应2位数字的分钟ss:对应2位数字的秒数
给你贴个完整的代码示例,直接就能跑:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateParserDemo { public static void main(String[] args) { String targetDateStr = "2018-05-21 23:05:51"; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date parsedDate = dateFormat.parse(targetDateStr); System.out.println("解析成功,得到的Date对象:" + parsedDate); } catch (ParseException e) { System.err.println("解析失败,原因:" + e.getMessage()); e.printStackTrace(); } } }
最后补个重要提醒:SimpleDateFormat不是线程安全的!如果是在多线程环境里用,要么每个线程单独创建实例,要么用ThreadLocal来管理它。要是你用的是Java 8及以上版本,更推荐用java.time包下的DateTimeFormatter,它天生线程安全,用法也更灵活。
内容的提问来源于stack exchange,提问作者Ali Habbash
相关产品推荐
相关产品推荐

