Обычно вы хотите хранить в UTC, если ваша система должна работать с разными часовыми поясами.
Допустим, у вас есть пользователь в Гонконге и пользователь в Сиднее, который просматривает одно и то же событие. Если вы хотите, чтобы они оба увидели дату (и время) события в их часовых поясах, то здесь мы, вероятно, вам нужно будет сохранить ее в UTC и затем представить пользователям, уважающим их географическое положение.
Если у вас нет таких требований, вы не выполняете такие преобразования и вы предполагаете только один часовой пояс, тогда вам не нужно добавлять больше сложности в вашу систему, просто используйте столбец Дата и сохраните там текущую дату.
Но если ты это сделаешь - иди на UTC. В этом случае вам понадобится DateTime, а не просто Date. Это потому, что 21:30 в одном часовом поясе может быть 2:30 на следующий день в другом часовом поясе, поэтому время действительно имеет значение.
При показе пользователю вы можете преобразовать его в часовой пояс пользователя и , а затем выбросить время, но для того, чтобы преобразование было правильным, вам нужно будет сохранить время.
Работать с UTC легко в .NET, DateTime имеет метод .ToUniversalTime (), который преобразует для вас значение даты и времени в UTC:
var utcNow = DateTime.Now.ToUniversalTime();
есть также свойство:
var utcNow = DateTime.UtcNow;
EDITED
Используйте статический класс TimeZoneInfo для преобразования даты и времени в нужные вам часовые пояса (например, из UTC в часовой пояс указанного пользователя:
TimeZoneInfo.ConvertTimeToUtc(...)
TimeZoneInfo.ConvertTimeFromUtc(...)