昨天有个需求:
原始数据的时间是以“yyyy - MM - dd HH : mm : ss”格式 (pattern)表示的(也会有错误数据,即非正确格式),现在需要将其转换成“yyMMddHHmm”格式(pattern)
当然最简单的办法就是操作String,切分拼接,但是有没有更简洁的办法呢?
问题可以分成以下几步来处理:
- 对于输入的格式数据,判断格式是否正确(即以“yyyy - MM - dd HH : mm : ss”表示);
- 对于正确格式的原始时间格式将其转化成Date对象(java中对于时间的表示类);
- 使用新的格式表示该Date对象。
处理过程:
A.使用apache提供的第三方扩展类库,org.apache.commons.lang.time包下的DateUtils 类处理时间格式匹配问题以及对象转换问题:String pattern[] = {"yyyy-MM-dd HH:mm:ss"};
DateUtils.parseDate(要匹配的时间字符串, pattern);
=========================运行如下=========================
如果不匹配会抛异常
如果匹配则会返回该字符串对于的Date对象的值
B.使用SimpleDateFormat将Date对象转换成期望格式
SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmm");
String expectedTime = sdf.format(date);
=========================运行如下=========================
将该实现封装成一个函数