具有未知日、月和/或年的 Java 日期实现

Iva*_*ana 4 java validation date

有些真实的人不知道自己出生于哪一天、几月甚至哪一年。

这可能会给需要完整出生日期的系统带来问题。

在荷兰,决定对这些出生日期进行未知编码。以下是1975年出生的人的出生日期,具体日期不详:

00-00-1975
Run Code Online (Sandbox Code Playgroud)

我该如何在 Java 中处理这个问题?我不是在询问解析“00-00-1975”的字符串,而是在询问支持未知(可能为空?)值的实际日期实现。

值得庆幸的是,2014 年决策者明智了,现在出生日期不详的人都得到了一个虚构的日期。 https://www.binnenlandsbestuur.nl/bestuur-en-organisatie/nieuws/niet-bestaan​​de-geboortedatum-00-00-jj-blijft.9484714.lynkx

Mic*_*ael 5

不,没有这样的事情。您可以实现自己的,例如

interface Birthday {
    Optional<LocalDate> fullDate();
    Year year();
}

class UnknownBirthday implements Birthday {
    private final Year year;
    // ctor

    @Override
    public Year year() {
        return year;
    }

    @Override
    public Optional<LocalDate> fullDate() {
        return Optional.empty();
    }
}

class KnownBirthday implements Birthday {
    private final LocalDate date;
    // ctor
    
    @Override
    public Optional<LocalDate> fullDate() {
        return Optional.of(date);
    }

    @Override
    public Year year() {
        return Year.of(date.getYear());
    }
}
Run Code Online (Sandbox Code Playgroud)