Многие ответы здесь указывают на хранение как UTC. Но будь очень осторожен с этим. Например, если вы запланируете встречу на 12:00, но встреча состоится после перехода на летнее время, что произойдет? UTC не хранит никакой информации о том, была ли функция dst активной во время сохранения встречи. Многие крупные известные системы допустили эту ошибку, когда пользователь отправляет электронное письмо летом в 9:00, а зимой отправленное время показывает 8:00, потому что вычисление обратно из UTC зависит от того, когда вы посмотрите на дату и время, не в тот момент, когда дата была записана.
Гораздо лучше предположить, что ваш пользователь хочет иметь время, которое он выбрал всегда. Без преобразования UTC, без преобразования времени, без информации о часовом поясе, ничего. Назначить встречу с 08:00 до 12:00 21 марта 2016 года - это как раз то, что нужно. Не используйте ни местное время, ни время UTC, но укажите неопределенное время (в json это не имеет ни z, ни +, в основном, в .NET это DateTime.Kind = DateTimeKind.Unspecified).
Конечно, если ваш вариант использования заключается в том, что вы являетесь компанией, которая проводит встречи с кем-то из разных часовых поясов, и вы хотите видеть эту информацию, скажем, в календаре компании, но позволить пользователям видеть, какое время находится в их часовом поясе, это становится все сложнее. Время должно быть правильным для разных людей в разных часовых поясах (поставщик и заказчик).
В этих случаях вы можете даже захотеть записать, когда встреча была сохранена в базе данных, в каком часовом поясе и включала ли она dst или нет. Таким образом, вы всегда можете рассчитать обратно местное время на что-либо еще, либо на то, что будет сейчас, либо на то, что предполагалось исторически. Потому что часовые пояса очень не статичны, что еще более усложняет ситуацию.
К счастью, именно здесь приходят такие библиотеки, как http://nodatime.org/, и мы настоятельно рекомендуем это сделать. Они работают с датами гораздо более последовательно. Даже тогда я бы порекомендовал обернуть все ваши переменные даты и логику в ваши собственные обертки, используя интерфейсы, чтобы их можно было смоделировать, и тогда вы все равно сможете переключать логику позже.