For this purpose, you should definitely be storing your timestamps in UTC in the database.
When you need to display a date from the database on your site, you can do this:
DateTime stamp = /* get datetime from the database here, make sure you
use the constructor that allows you to specify the
DateTimeKind as UTC. */
//E.g.
//DateTime stamp = new DateTime(2009, 12, 12, 12, 12, 12, DateTimeKind.Utc);
timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(" /* users time zone here */");
var convertedTime = TimeZoneInfo.ConvertTime(stamp, timeZoneInfo);
//Print out the date and time
//Console.WriteLine(convertedTime.ToString("yyyy-MM-dd HH-mm-ss"));
The list of timezones is already available in .Net, so you can see this post on how to enumerate them. For ASP.Net MVC, instead of printing the time out, you would want to assign the converted datetime to a property of your model class so your View could use it for display.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…