Link to home
Start Free TrialLog in
Avatar of praveen1981
praveen1981Flag for India

asked on

Olson time

Hi,

I am getting all the system Time Zones, now I am matching the Olson timexone with system
time zone, if matches then returning the system timezone i.e  windowsTimeZone.

now the problem is when I am using "America/New_York" it is returning the correct
"Eastern Standard Time"  but when i am using "America/Nassau" it is not returning the
"Eastern Standard Time"  it just returning the blank,

so, can you please guide me what's wrong in the follwoing code.

                        Many thanks.
 
 private void button1_Click(object sender, EventArgs e)
        {
            //MessageBox.Show(GetWindowTimeZone("America/New_York"));
            MessageBox.Show(GetWindowTimeZone("America/Nassau"));           
        }

        private string GetWindowTimeZone(string oslon)
        {
            string windowsTimeZone = null;
            TzdbDateTimeZoneSource Tzdb = new TzdbDateTimeZoneSource("NodaTime.TimeZones.Tzdb");

            //getting all the system time zones and matching with the Olson time zone
            foreach(TimeZoneInfo timeZone in TimeZoneInfo.GetSystemTimeZones())
            {
                System.Diagnostics.Debug.WriteLine(timeZone.StandardName + " -- " + Tzdb.MapTimeZoneId(timeZone));
                if (Tzdb.MapTimeZoneId(timeZone) == oslon)
                {
                    windowsTimeZone = timeZone.StandardName;
                    break;
                }
            }

            return windowsTimeZone;
        }

Open in new window

Avatar of Gary Davis
Gary Davis
Flag of United States of America image

I ran the program and listed all the TimeZone IDs and none had "Nassau":

Africa/Cairo
Africa/Casablanca
Africa/Johannesburg
Africa/Lagos
Africa/Nairobi
Africa/Windhoek
America/Anchorage
America/Asuncion
America/Bahia
America/Bogota
America/Buenos_Aires
America/Caracas
America/Cayenne
America/Chicago
America/Chihuahua
America/Cuiaba
America/Denver
America/Godthab
America/Guatemala
America/Halifax
America/Indianapolis
America/La_Paz
America/Los_Angeles
America/Mexico_City
America/Montevideo
America/New_York
America/Phoenix
America/Regina
America/Santa_Isabel
America/Santiago
America/Sao_Paulo
America/St_Johns
Asia/Almaty
Asia/Amman
Asia/Baghdad
Asia/Baku
Asia/Bangkok
Asia/Beirut
Asia/Calcutta
Asia/Colombo
Asia/Damascus
Asia/Dhaka
Asia/Dubai
Asia/Irkutsk
Asia/Jerusalem
Asia/Kabul
Asia/Karachi
Asia/Katmandu
Asia/Krasnoyarsk
Asia/Magadan
Asia/Nicosia
Asia/Novosibirsk
Asia/Rangoon
Asia/Riyadh
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Tokyo
Asia/Ulaanbaatar
Asia/Vladivostok
Asia/Yakutsk
Asia/Yekaterinburg
Asia/Yerevan
Atlantic/Azores
Atlantic/Cape_Verde
Atlantic/Reykjavik
Australia/Adelaide
Australia/Brisbane
Australia/Darwin
Australia/Hobart
Australia/Perth
Australia/Sydney
Etc/GMT
Etc/GMT+11
Etc/GMT+12
Etc/GMT+2
Etc/GMT-12
Europe/Berlin
Europe/Bucharest
Europe/Budapest
Europe/Istanbul
Europe/Kaliningrad
Europe/Kiev
Europe/London
Europe/Moscow
Europe/Paris
Europe/Warsaw
Indian/Mauritius
Pacific/Apia
Pacific/Auckland
Pacific/Fiji
Pacific/Guadalcanal
Pacific/Honolulu
Pacific/Port_Moresby
Pacific/Tongatapu

Open in new window


So your code is not wrong, the data is missing.
Avatar of praveen1981

ASKER

Hi,

I got the xml file from following link

http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml 

it contains the following

<mapZone type="America/Nassau" territory="BS" other="Eastern Standard Time"/>

but i don't understand why my code is not returning "America/Nassau"

can you please guide me how could i get it.
Did you follow the steps for using your own timezone database? See http://noda-time.googlecode.com/hg-history/1.0.x/docs/userguide/tzdb.html

Noda Time comes with a version of the tzdb (aka zoneinfo) database, which is now hosted by IANA. This database changes over time, as countries decide to change their time zone rules. As new versions of Noda Time are released, the version of tzdb will be updated. However, you may wish to use a new version of tzdb without changing which version of Noda Time you're using. This documentation tells you how to do so.
ASKER CERTIFIED SOLUTION
Avatar of Manoj Patil
Manoj Patil
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks.