时间字符串格式转换

昨天有个需求:

原始数据的时间是以“yyyy - MM - dd HH : mm : ss”格式 (pattern)表示的(也会有错误数据,即非正确格式),现在需要将其转换成“yyMMddHHmm”格式(pattern)
当然最简单的办法就是操作String,切分拼接,但是有没有更简洁的办法呢?

问题可以分成以下几步来处理:

  1. 对于输入的格式数据,判断格式是否正确(即以“yyyy - MM - dd HH : mm : ss”表示);
  2. 对于正确格式的原始时间格式将其转化成Date对象(java中对于时间的表示类);
  3. 使用新的格式表示该Date对象。

处理过程:

A.使用apache提供的第三方扩展类库,org.apache.commons.lang.time包下的DateUtils 类处理时间格式匹配问题以及对象转换问题:
String pattern[] = {"yyyy-MM-dd HH:mm:ss"};

DateUtils.parseDate(要匹配的时间字符串, pattern);

=========================运行如下=========================

如果不匹配会抛异常
image
如果匹配则会返回该字符串对于的Date对象的值
image

B.使用SimpleDateFormat将Date对象转换成期望格式

SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmm");

String expectedTime = sdf.format(date);

=========================运行如下=========================

image

将该实现封装成一个函数

image