So... dealing with dates and timezones is always tricky in ruby (and, well, in software in general) --
Ruby Date objects don't have a concept of timezones, but Rails adds the concept of TimeWithZone for dealing with Time objects.
It's important also to note that timestamps are stored in the db without a timezone, and it's up to the application layer to apply the timezone.
In RenterUp, we allow timezones for billing purposes to be set at the property level. Most apps have a per-user timezone. We don't have that yet (but we should eventually add it).
Anyway, for billing purposes, currently we set all due dates to a second before midnight (23:59:59) on the bill's due date. If you look at the overridden Bill#due_by method, you can see where we apply the property's timezone to the timestamp.