09-25-2017 06:55 AM
What is the correct way to read out the current timezone of a Ni linux RT system?
I first looked into reading RTTarget.TimeZone from the ni-rt.ini, but it seems to me that this text field can be very many different formats. How can i either read out the GMT+- currently on the system or convert the tekst from the ini to something i can use? It seems to me the ini supports and sets different values depanding on where you set them from (max, webinterface, programmatically)
I saw somewhere that this was the supported list for the ini token (below), but i have also seen MET as a timezone so it seems to me that there should be a easier way to get the current timezone of the system.
=================================================================================================== Without DST With DST UTC offset sec String that shows up in UI drop down box =================================================================================================== ("UTC12", "UTC12UDT", -1200) // (GMT-12) International Date Line West ("BST11", "BST11BDT", -1100) // (GMT-11) Midway Island, Samoa, Bering Straits ("HST10", "HST10HDT", -1000) // (GMT-10) Hawaii, Aleutian Islands ("MART9:30", "MART9:30MARDT", -950) // (GMT-9:30) French Polynesia, Marquesas Islands ("AST9", "AST9ADT", -900) // (GMT-9) Alaska ("PST8", "PST8PDT", -800) // (GMT-8) Pacific Time (US & Canada), Tijuana ("MST7", "MST7MDT", -700) // (GMT-7) Mountain Time (US & Canada), Mazatlan ("CST6", "CST6CDT", -600) // (GMT-6) Central Time (US & Canada), Mexico City ("EST5", "EST5EDT", -500) // (GMT-5) Eastern Time (US & Canada), Bogota, Lima ("AST4", "AST4ADT", -400) // (GMT-4) Central Brazil, Santiago, Caracas, La Paz ("NST3:30", "NST3:30NDT", -350) // (GMT-3:30) Canada (Newfoundland Standard Time) ("GRNLNDST3", "GRNLNDST3GRNLNDDT", -300) // (GMT-3) Greenland, East Brazil, Buenos Aires ("FALKST2", "FALKST2FALKDT", -200) // (GMT-2) Falkland Islands, Mid-Atlantic ("AZOREST1", "AZOREST1AZOREDT", -100) // (GMT-1) Azores, Cape Verde Islands ("CUT0", "CUT0GDT", 0) // (UTC) Coordinated Universal Time ("GMT0", "GMT0BST", 0) // (GMT) Greenwich Mean Time, London, Lisbon ("NFT-1", "NFT-1DFT", 100) // (GMT+1) Continental Europe, West Central Africa ("WET-2", "WET-2WET", 200) // (GMT+2) Finland, Athens, Jerusalem, Bucharest ("USAST-2", "USAST-2USADT", 200) // (GMT+2) South Africa, Cairo, Istanbul, Beirut ("SAUST-3", "SAUST-3SAUDT", 300) // (GMT+3) Saudi Arabia, Kuwait, Iraq, Nairobi ("MEST-3", "MEST-3MEDT", 300) // (GMT+3) Moscow, St. Petersburg, Volgograd ("IRST-3:30", "IRST-3:30IRDT", 350) // (GMT+3:30) Iran ("WST-4", "WST-4WDT", 400) // (GMT+4) Abu Dhabi, Muscat, Baku, Tbilisi, Yerevan ("AFT-4:30", "AFT-4:30AFDT", 450) // (GMT+4:30) Afghanistan ("PAKST-5", "PAKST-5PAKDT", 500) // (GMT+5) Pakistan, Islamabad, Tashkent, Ekaterinburg ("IST-5:30", "IST-5:30IDT", 550) // (GMT+5:30) India, Sri Lanka ("NPT-5:45", "NPT-5:45NPDT", 575) // (GMT+5:45) Nepal ("TASHST-6", "TASHST-6TASHDT", 600) // (GMT+6) Almaty, Novosibirsk, Astana, Dhaka ("MMT-6:30", "MMT-6:30MMDT", 650) // (GMT+6:30) Myanmar, Cocos Islands ("THAIST-7", "THAIST-7THAIDT", 700) // (GMT+7) Thailand, Jakarta, Krasnoyarsk ("WAUST-8", "WAUST-8WAUDT", 800) // (GMT+8) Western Australia, Kuala Lumpur, Singapore ("TAIST-8", "TAIST-8TAIDT", 800) // (GMT+8) Taiwan, Beijing, Hong Kong, Urumqi, Irkutsk ("CWST-8:45", "CWST-8:45AW", 875) // (GMT+8:45) Western Australia (Caiguna-Eucla) ("JST-9", "JST-9JSTDT", 900) // (GMT+9) Japan ("KORST-9", "KORST-9KORDT", 900) // (GMT+9) Korea, Yakutsk ("CST-9:30", "CST-9:30AS", 950) // (GMT+9:30) South Australia, Northern Territory, Broken Hill ("EET-10", "EET-10EETDT", 1000) // (GMT+10) Eastern Australia, Guam, Hobart ("LHST-10:30", "LHST-10:30LH", 1050) // (GMT+10:30) Lord Howe Island ("MET-11", "MET-11METDT", 1100) // (GMT+11) Solomon Islands, New Caledonia, Magadan ("NFT-11:30", "NFT-11:30NFDT", 1150) // (GMT+11:30) Norfolk Island ("NZST-12", "NZST-12NZDT", 1200) // (GMT+12) New Zealand, Fiji, Kamchatka ("CHAST-12:45", "CHAST-12:45CHADT", 1275) // (GMT+12:45) New Zealand (Chatham Islands) ("TOT-13", "TOT-13TDT", 1300) // (GMT+13:00) Nuku'alofa
Regards
Mrmas
09-25-2017 08:18 AM
I would think that there's some property in the System API "Get Property" node, but if not, you can query the underlying OS if it's a NI Linux RT target using the System Exec function, running date +%:z
10-06-2017 09:11 AM - edited 10-06-2017 09:26 AM
Hi,
I belive i found a way to calculate the GMT using this as a basis,
Now i am just wondering one thing, it says here "http://digital.ni.com/public.nsf/allkb/CD3E1F89F47CCF2486257A76005B60C1" that setting the timezone using the Set Time.VI automatically sets daylight savingtime to on, but as far as i can see it turns it off and i cant find a way to turn it on again outside of MAX/webinterface.
Regards
Mrmas