私は、次の操作を行うことをお勧め:
public static void main(String[] args) throws Throwable {
String d1 = "Feb 26, 1991";
String d2 = "July 23, 1991";
DateTimeFormatter f =
DateTimeFormat.forPattern("MMM dd, yyyy").withLocale(Locale.ENGLISH);
System.out.println(nextBirthDay(f.parseLocalDate(d1))); // 2017-02-26
System.out.println(nextBirthDay(f.parseLocalDate(d2))); // 2016-07-23
}
private static LocalDate nextBirthDay(LocalDate date) {
LocalDate today = LocalDate.now(DateTimeZone.getDefault());
int year = today.getYear();
int month = date.getMonthOfYear();
int dayOfMonth = date.getDayOfMonth();
if (
today.getMonthOfYear() > month
|| (today.getMonthOfYear() == month && today.getDayOfMonth() > dayOfMonth)
) {
year++;
}
return new LocalDate(year, month, dayOfMonth);
}