DateTime.Now - просто сделать поиск и замену (по файлам). Можно ограничить поиск типами файлов (
.cs,
.cshtml,
.aspx,
.ascx), чтобы не зацепить лишнего.
Что касается вывода времени в нужном часовом поясе, то возможно стоит это делать с помощью
JavaScript. Для каждого отдельного пользователя выводить время со стороны сервера будет дорогим удовольствием (в плане затраты ресурсов).
В первую очередь нужно сделать вспомогательный метод (или методы), который будет принимать исходную дату и время (
UTC или время сервера) и возвращать правильную дату и время.
В представлениях делать вывод даты и времени можно в какие-нибудь
span-ы, например:
<p>
<span class="datetime">
@Html.GetDateTime(DateTime.Now)
</span>
</p>
<p>
<span class="datetime" data-timestamp="@Html.GetTimestamp()">
@Html.GetDateTime(DateTime.Now)
</span>
</p>
<p>Метод <b>Html.GetDateTime</b> вполне может возвращать дату в тегах, тогда будет:</p>
<p>@Html.GetDateTime(DateTime.Now)</p>
<p>а на выходе может быть:<p>
<p>
<span class="datetime" data-timestamp="123">
15.11.2016 21:11:21
</span>
</p>
<p>
<b>timestamp</b> - позволит обойти проблему с форматированием,
при расчете времени на стороне клиента.
</p>
С
UTC будет проще работать, но вполне можно конвертировать время из времени сервера, главное не затеряться во времени, особенно между зимой и летом :-)
С представлениями придется повозиться. Хотя если у вас имена полей, содержащие дату и время, более ли менее унифицированы, то проблем особых быть не должно.
Поиск и замену можно выполнять с использованием регулярных выражений, в тех местах где нужно делать вывод через вспомогательную функцию, но это может оказаться сложным решением.
В коде (
C#) с заменой особых проблем быть не должно.
Замену в базе, при необходимости, можно автоматизировать. Единственное, если используется где-то
GETDATE(), могут быть проблемы, тоже придется учитывать.
Попробуйте для начала с представлениями (выводом) разобраться.
А стоит проводить (в коде и базе) крупномасштабную замену времени сервера на
UTC - время покажет.