I think that the date_i18n() function in incorrectly translating the dates, possibly because of the format of the date that’s being returned by ACF.
Try getting the raw data from the date field without formatting by setting the 3rd parameter like this. get_sub_field('date', false, false);