The TIME function takes and returns the values in GMT.
The ICUDateTimeFor token displays the localized time.
Thus, for TIME(Year,Month,Day) (which is in GMT), the ICUDateTimeFor displayed date in local time will be one less for anyone with a negative time zone offset.
Better is to use TIME(Year,Month,Day,12,0,0) which will give noon GMT time, and thus the same day in local time for pretty much everyone in the world (everyone with time zone differences strictly between -12 hours and +12 hours).