寻求hsqldb-2.3.1中HsqlDateTime类toJavaDatePattern方法的替代方案
替代HSQLDB HsqlDateTime.toJavaDatePattern方法的实现
要实现将HSQLDB风格的日期格式转换为Java SimpleDateFormat可识别的模式,核心是建立两者格式符号的映射关系,通过字符串替换完成转换。以下是具体实现:
核心映射规则
HSQLDB的日期格式符号与Java SimpleDateFormat的对应关系(常见场景):
DD→dd(两位数字日,如05)MON→MMM(英文月份缩写,如Jan)YYYY→yyyy(四位数字年份,如2024)YY→yy(两位数字年份,如24)HH→HH(24小时制小时)MI→mm(分钟)SS→ss(秒)
实现代码
public static String convertHsqlDatePatternToJava(String hsqlPattern) { if (hsqlPattern == null || hsqlPattern.isEmpty()) { return hsqlPattern; } String javaPattern = hsqlPattern; // 按顺序替换格式符号(优先替换长符号避免冲突) javaPattern = javaPattern.replace("MON", "MMM"); javaPattern = javaPattern.replace("YYYY", "yyyy"); javaPattern = javaPattern.replace("DD", "dd"); javaPattern = javaPattern.replace("YY", "yy"); javaPattern = javaPattern.replace("MI", "mm"); javaPattern = javaPattern.replace("SS", "ss"); // 若需要支持更多HSQLDB格式符号,可在此添加对应替换规则 // 例如HSQLDB的"DAY"对应Java的"EEEE"(星期全称): // javaPattern = javaPattern.replace("DAY", "EEEE"); return javaPattern; }
测试验证
- 输入
DD-MON-YYYY→ 输出dd-MMM-yyyy,完全匹配需求 - 输入
YYYY-MM-DD HH:MI:SS→ 输出yyyy-MM-dd HH:mm:ss - 输入
MON/DD/YY→ 输出MMM/dd/yy
如果需要覆盖更多HSQLDB的格式符号,可对照HSQLDB的日期格式规范补充对应的替换逻辑即可。
内容的提问来源于stack exchange,提问作者Ragas
相关产品推荐
相关产品推荐

