不使用Java中的java.util.Date类验证字符串日期

时间:2017-06-05 14:33:37

标签: java

这个问题在一次采访中问我"如何在java中验证(有效或无效)字符串日期而不使用java.util.date class.Dateformat可以在任何表格即 dd-MM-yyyy,yyyy-dd-MM等等。"。如果有人有想法请帮助.TIA

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是将java.util.Date解析为java.time.LocalDate然后你有一个标准的yyyy-mm-dd。这应该很容易验证。你能确定日期对象的来源吗?如果您可以从源文件或日期对象获取日历对象,那么我编写的这个方法应该有助于解析。

/**
 *  Utility method that parses java.util.Date to java 8's java.time.LocalDat
 * <p>
 * TODO finish method design
 *
 * @param calendarObj
 * @return
 */
public static LocalDate parseCalendarToLocalDate(Calendar calendarObj) {

    int month = calendarObj.get(Calendar.MONTH);
    int year = calendarObj.get(Calendar.YEAR);
    int day = calendarObj.get(Calendar.DAY_OF_MONTH);

    LocalDate localDateObj =  LocalDate.of(year,(month+1),day);
    return localDateObj;
}