使用Java8

时间:2017-01-12 22:10:27

标签: java-8

我是Java8的新手

我试图通过检查我的应用程序中可接受的日期格式列表来检查DateString是否有效。

我目前正在使用SimpleDateFormat。 是否可以使用DateTimeFormatter执行此操作,因为我使用的是Java8?

public static boolean isDateValid(String dateValue)
    {
        boolean returnVal = false;
        String[] permissFormats = new String[]{"yyyy-MM-dd", "ddMMMyy"}; 
        SimpleDateFormat sdfObj = new SimpleDateFormat();
        sdfObj.setLenient(false); //strict validation
        ParsePosition position = new ParsePosition(0); 
        for (int i = 0; i < permissFormats.length; i++) {
            sdfObj.applyPattern(permissFormats[i]);
            position.setIndex(0);
            position.setErrorIndex(-1);
            sdfObj.parse(dateValue, position);
            if (position.getErrorIndex() == -1) {
                returnVal = true;
                break;
            }
        }
        return returnVal;
    }

1 个答案:

答案 0 :(得分:1)

这是一种只用java 8等效替换的方法。

    public static boolean isDateValid(String dateValue)
    {
        boolean returnVal = false;
        String[] permissFormats = new String[]{"yyyy-MM-dd", "ddMMMyy"};
         for (int i = 0; i < permissFormats.length; i++) {
            DateTimeFormatter sdfObj = new DateTimeFormatterBuilder()
                    .parseStrict().parseCaseInsensitive().appendPattern(permissFormats[i]).toFormatter();
            ParsePosition position = new ParsePosition(0);
            position.setIndex(0);
            position.setErrorIndex(-1);
            sdfObj.parse(dateValue, position);
            if (position.getErrorIndex() == -1) {
                returnVal = true;
                break;
            }
        }
        return returnVal;
    }