использую django-timezones примерно так:
class City(models.Model):
name = models.CharField(u'City', max_length=30)
timezone = TimeZoneField(u'timezone')
def now(self):
return datetime.now(self.timezone).replace(tzinfo=None)
А потом, зная текущее время в городе, можно уже нужные любые вычисления проводить — просто вместо datetime.now() использовать что-то вроде self.city.now().
Все дополнительные навороты из django-timezones показались не очень полезными, не придумал, как их использовать можно — там дьявол в деталях, как обычно. Дополнительные расчеты можно проводить с помощью стандартного datetime или (и) стороннего dateutil.