Java 如何比较日期格式

Java 如何比较日期格式,java,javascript,date,robotium,Java,Javascript,Date,Robotium,我的应用程序根据用户设置以不同格式显示日期。我想测试它是否显示正确的日期格式。我将日期显示为字符串2014/12/31。我不想验证实际日期,只想验证格式 例如:当用户选择yyyy/dd/MM格式时,应以该格式显示。1。尝试使用SimpleDataFormat之类的东西将字符串解析到所需的日期 像上面那样检查 二,。另一种方法可以是使用regex,但您必须在应用程序中内置一些受支持的数据格式regex,并相应地进行选择。在花括号内围绕{2}、{2}、{4}值来准备正则表达式 public stat

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

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

1。尝试使用SimpleDataFormat之类的东西将字符串解析到所需的日期

像上面那样检查

二,。另一种方法可以是使用regex,但您必须在应用程序中内置一些受支持的数据格式regex,并相应地进行选择。在花括号内围绕{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没有格式化日期功能。如果您需要处理多种格式,这可能是一项艰巨的工作,也是浪费时间

我建议使用,一个用JavaScript轻松操作日期的库

用法示例:

HTML


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

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

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


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

执行往返测试Date1->format->parse->Date2并比较Date1和Date2。还是你在问别的问题?我正在测试一个android应用程序。我有一个日期字符串例如:21/31/14,我想自动测试,应该说它是什么格式的4种格式的m/d/y,mm/dd/yy,dd/mm/yy和yyyy/mm/DDU谢谢,但我正在寻找这样做的逻辑请告诉我你不允许yyyy/dd/mm格式!!对于许多值,除非您知道所表示的日期,否则无法判断日期是mm/dd/yyyy还是dd/mm/yyyy。如果你知道的话,按你的要求去做并不难。我试过了,它不起作用。所有日期格式的测试均通过。当我传递不同的日期格式时,它应该失败。日期=空;尝试{date=new SimpleDataFormatm/d/y.parsedateString;}捕获解析异常e{//TODO自动生成的捕获块e.printStackTrace;}如果date==null失败;第二种选择是可行的。谢谢大家!@user3818494现在应该可以工作了,dateFormat.setLenientfalse;是missing@user3818494试试第一个,它应该在更多的控制你。现在第一个也工作。谢谢大家!@ankurIt不工作了。我通过了所有不同日期格式的测试。当日期的格式不同时,它应该失败。String dateString=String TextView myList.getChildAt0.findViewByIdR.id.dateText.getText;日期=空;如果date==null失败,请尝试{date=new SimpleDateFormatM/d/y.parsedateString;}捕获ParseException e{e.printStackTrace;};
 <script src="moment.js"></script>
var now = moment();
now.format("yyyy/dd/MM");
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");
    }
}