我有一个时间戳字段,它可以是任何格式(yyyy-MM-dd或yyyy / MM / dd或yyyy-MM-dd'T'HH:mm:ss ETC ..),但我无法控制更改。我想将传入的时间戳转换为字符串,以便针对RegEx进行验证。
我可以找到许多解决方案,但是都有特定的日期格式。 可以通过通用方式完成吗?
答案 0 :(得分:2)
没有标准的方法可以做到这一点。但是,您可以使用commons-lang库,该库提供DateUtils.html#parseDate:
通过尝试各种不同的解析器来解析表示日期的字符串。
解析将依次尝试每种解析模式。仅当解析解析整个输入字符串时,才认为解析成功。如果没有任何匹配的解析模式,则抛出ParseException。
然后您将可以在一个呼叫中将其与多种模式一起使用:
Date d = DateUtils.parseDate("2018/06/20",
"yyyy-MM-dd", "yyyy/MM/dd", "yyyy-MM-dd'T'HH:mm:ss");
System.out.println(d);
//And that prints Wed Jun 20 00:00:00 SAST 2018, matching on 2nd pattern