How to do timezones in ASP.NET MVC?

Viewed 15381

On my site, I need to know what timezones people are located in, in order to display messages to them at the right times. I am not too sure what to be searching for in terms of a tutorial on how to do this.

What I am planning on doing is: when a user comes to my site, they will set their timezone by selecting it from a dropdown list. I will store their settings in my database and use it to calculate the times.

I am not sure what I need. What should be my database time be storing? I read somewhere that it should be stored as UTC. How do I set up my database to do this? Also, I will be on a shared hosting site so it has to be set in a way that I can do it (maybe through webconfig?).

Next, I would need a list of all the timezones as either an HTML helper or regular HTML. I really don't want to make one.

Then, like I said, I need a tutorial showing me what to do. I think it is adding and subtracting stuff from that time, but I could be wrong.

4 Answers

Usage

getCurrentDateTimeWithTimeZone("Central Europe Standard Time");

Method

public DateTime getCurrentDateTimeWithTimeZone(string strTimeZone)
    {
        var localTimezone = TimeZoneInfo.Local;
        var userTimezone = TimeZoneInfo.FindSystemTimeZoneById(strTimeZone);

        var todayDate = DateTime.Now;
        var todayLocal = new DateTimeOffset(todayDate,
                                            localTimezone.GetUtcOffset(todayDate));

        var todayUserOffset = TimeZoneInfo.ConvertTime(todayLocal, userTimezone);
        return todayUserOffset.DateTime;

    }

List of Timezone ID

Dateline Standard Time

UTC-11

Samoa Standard Time

Hawaiian Standard Time

Alaskan Standard Time

Pacific Standard Time (Mexico)

Pacific Standard Time

US Mountain Standard Time

Mountain Standard Time (Mexico)

Mountain Standard Time

Central America Standard Time

Central Standard Time

Central Standard Time (Mexico)

Canada Central Standard Time

SA Pacific Standard Time

Eastern Standard Time

US Eastern Standard Time

Venezuela Standard Time

Paraguay Standard Time

Atlantic Standard Time

Central Brazilian Standard Time

SA Western Standard Time

Pacific SA Standard Time

Newfoundland Standard Time

E. South America Standard Time

Argentina Standard Time

SA Eastern Standard Time

Greenland Standard Time

Montevideo Standard Time

UTC-02

Mid-Atlantic Standard Time

Azores Standard Time

Cape Verde Standard Time

Morocco Standard Time

UTC

GMT Standard Time

Greenwich Standard Time

W. Europe Standard Time

Central Europe Standard Time

Romance Standard Time

Central European Standard Time

W. Central Africa Standard Time

Namibia Standard Time

Jordan Standard Time

GTB Standard Time

Middle East Standard Time

Egypt Standard Time

Syria Standard Time

South Africa Standard Time

FLE Standard Time

Israel Standard Time

E. Europe Standard Time

Arabic Standard Time

Arab Standard Time

Russian Standard Time

E. Africa Standard Time

Iran Standard Time

Arabian Standard Time

Azerbaijan Standard Time

Mauritius Standard Time

Georgian Standard Time

Caucasus Standard Time

Afghanistan Standard Time

Ekaterinburg Standard Time

Pakistan Standard Time

West Asia Standard Time

India Standard Time

Sri Lanka Standard Time

Nepal Standard Time

Central Asia Standard Time

Bangladesh Standard Time

N. Central Asia Standard Time

Myanmar Standard Time

SE Asia Standard Time

North Asia Standard Time

China Standard Time

North Asia East Standard Time

Singapore Standard Time

W. Australia Standard Time

Taipei Standard Time

Ulaanbaatar Standard Time

Tokyo Standard Time

Korea Standard Time

Yakutsk Standard Time

Cen. Australia Standard Time

AUS Central Standard Time

E. Australia Standard Time

AUS Eastern Standard Time

West Pacific Standard Time

Tasmania Standard Time

Vladivostok Standard Time

Central Pacific Standard Time

New Zealand Standard Time

UTC+12

Fiji Standard Time

Kamchatka Standard Time

Tonga Standard Time

Related