Java 中是否有通用方法将 SimpleDateFormat 日期格式转换为正则表达式?
对于简单的表达式,你可以这样做
String dateFormat = "yyyy/MM/dd HH:mm:ss.SSS";
String regexFormat = dateFormat.replaceAll("[mHsSdMy]", "\\d");
Run Code Online (Sandbox Code Playgroud)
然而,生产出经过验证的东西要复杂得多。例如,当 MM=03 时,dd 必须介于 01 和 31 之间,但是当 MM=02 时,dd 必须介于 01 和 28 或 29 之间(取决于年份)
如果您使用 MMM、DDD、ZZZ,则其更加复杂且依赖于区域设置。
不,没有任何现成可用的东西。并且正则表达式不了解日期约束 - 例如 GMT 是什么,或者 am/pm 是什么。对于最简单的情况,您可以使用\d{2}-\{2}-\d{4}( dd-MM-yyyy),否则坚持SimpleDateFormat(或 joda-time DateTimeFormat)
| 归档时间: |
|
| 查看次数: |
2619 次 |
| 最近记录: |