如何比较日期格式

how to compare date format

本文关键字:日期 格式 比较 何比较      更新时间:2023-09-26

我的应用程序根据用户设置以不同的格式显示日期。我想测试它是否显示正确的日期格式。我以字符串形式显示日期(2014/12/31)。我不想验证实际日期,而只是验证格式。

例如:当用户选择 yyyy/dd/MM 格式时,它应该以该格式显示它。

1.) 尝试使用类似 SimpleDateFormat 的内容将字符串解析为所需的日期

 Date date = null;
    boolean checkformat;
    try {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/dd/MM");
        dateFormat.setLenient(false);
        date = dateFormat.parse("2013/25/09");
    } catch (ParseException ex) {
        ex.printStackTrace();
    }
    if (date == null) {
        checkformat = false;
    } else {
        checkformat = true;
    }
    System.out.println(checkformat);

像上面一样检查。

2.)其他方法可以是使用正则表达式,但是您必须在应用程序中内置一些受支持的数据格式正则表达式,并相应地进行选择。围绕大括号内的{2}, {2}, {4}值来准备正则表达式。

public static void main(String[] args) throws ParseException {
        String input = "2014/12/31";
        boolean checkformat;
        if (input.matches("([0-9]{4})/([0-9]{2})/([0-9]{2})")) // for yyyy/MM/dd format
            checkformat = true;
        else
            checkformat = false;
        System.out.println(checkformat);
    }

更多信息在这里

您需要实现自定义解决方案,JavaScript 没有格式日期功能。如果您需要处理多种格式,这可能是一项艰苦的工作和浪费时间。

我建议使用 moment.js,这是一个在 JavaScript 中轻松操作日期的库。

使用示例:

.HTML

 <script src="moment.js"></script>

.JS

var now = moment();
now.format("yyyy/dd/MM");

如果你想测试4个模式,那么有4个simpleDateFormat对象,然后依次测试每一个

如果字符串不匹配,那么它将抛出一个可以捕获的异常。

您可以使用正则表达式来检查日期字符串格式,如下所示:

public static void main(String[] args) {
    String date = "2014/11/01";
    Pattern pattern = Pattern.compile("''d{4}/''d{2}/''d{2}");
    Matcher matcher = pattern.matcher(date);
    if (matcher.matches()) {
        System.out.printf("the date string match format:%s", "yyyy/mm/dd");
    }
}