如何比较日期格式

时间:2014-11-19 02:37:55

标签: java javascript date robotium

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

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

4 个答案:

答案 0 :(得分:1)

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);
    }

更多信息here

答案 1 :(得分:0)

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

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

用法示例:

<强> HTML

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

<强> JS

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:-1)

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

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");
    }
}