Я делал что-то очень похожее, но теперь мне кажется, что я предпочитаю использовать javascript, чтобы конвертировать все время в локальные на стороне клиента. Сервер выдаст все время в формате UTC на сгенерированной странице, а javascript преобразует его после загрузки страницы.
Это устраняет путаницу в коде на стороне сервера, так как я всегда знаю, который час (UTC). На стороне клиента я использую jquery и функцию each () для форматирования всех значений времени одновременно. Я записываю каждый раз как unix-время в скрытом поле, чтобы сделать это простым для обработки с помощью jquery.
Единственные проблемы, с которыми я сталкиваюсь в этом методе, это то, что а) у меня пока нет действительно хорошей подпрограммы форматирования даты / времени в javascript, и б) если у пользователя отключен javascript, то он не работает.