Avatar of praveen1981
praveen1981
Flag 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

ProgrammingVisual Basic.NETASP.NET

Avatar of undefined
Last Comment
praveen1981

8/22/2022 - Mon
Gary Davis

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.
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.
Gary Davis

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.
This is the best money I have ever spent. I cannot not tell you how many times these folks have saved my bacon. I learn so much from the contributors.
rwheeler23
ASKER CERTIFIED SOLUTION
Manoj Patil

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
praveen1981

ASKER
Thanks.