The first one is correct. charged_through_date is the last day of the period that has already been billed, so the next billing date is the day after it. For example, a monthly subscription invoiced on May 1 has a charged_through_date of May 31, and it bills again on June 1. If the subscription has a canceled_date, it stops at the end of the current period and there is no next billing date.
charged_through_date is a date with no time, in YYYY-MM-DD format. It is read in the subscription’s timezone field, which is an IANA name such as America/Los_Angeles and defaults to the seller location’s timezone. Don’t convert it to UTC. Treat it as a local calendar date in that timezone.