PowerShell get-Worldtime function
As we are running for a new year again,Some more timeZone fun, I did a WMI example here : Hey PowerShell Guy!, How Can I Retrieve Time Zone Information for a Computer? , now I show an example that shows the given date in all timezones with information about the Daylight saving time.
This time I'm using the .NET framework 3.5 TimeZoneInfo Class that has some more functionality as the System.TimeZone class, So you will need to have the .NET framework 3.5 installed and as by default .NET 3.5 DLL's are not loaded in PowerShell we also need to load the system.Core nameSpace,
# Get-Worldtime function
# Using the .NET Framework 3.5 TimeZoneinfo class
#
# /\/\o\/\/2007
# http://thePowerShellGuy.com
function get-WorldTime ([datetime]$time = (get-date)){
[void][System.Reflection.Assembly]::LoadWithPartialName('system.core')
if ([System.TimeZoneinfo]::local.IsDaylightSavingTime($time)) {
$tz = [System.TimeZoneinfo]::local.DaylightName
$dte = [System.TimeZone]::CurrentTimeZone.GetDaylightChanges($time.year).end
if ($dte -lt $time){$dte = [System.TimeZone]::CurrentTimeZone.GetDaylightChanges($time.year +1).end}
$next = "DaylightSavingTime will end : $dte"
}else{
$tz = [System.TimeZoneinfo]::local.StandardName
$dts = [System.TimeZone]::CurrentTimeZone.GetDaylightChanges($time.year).start
if ($dts -lt $time){$dts = [System.TimeZone]::CurrentTimeZone.GetDaylightChanges($time.year +1).start}
$next = "DaylightSavingTime will Start : $dts"
}
"Local time is {0:h:mm:ss tt dddd dd MMMM} {1}" -f $time,$tz
"UTC Time is {0}" -f [System.TimeZoneinfo]::ConvertTimeToUtc($time)
$next
[System.TimeZoneinfo]::GetSystemTimeZones() |
select @{n='Time';e={[System.TimeZoneinfo]::ConvertTime($time,$_).tostring('hh:mm tt dd MMM')}},
id,@{n='DST';e={$_.IsDaylightSavingTime($time)}},DisplayName | ft -a
}
Usage :
Get-WorldTime will get you the current time,
Get-WorldTime 1/1/2008 will give you info how your New year relates to other TimeZones
Get-Worldtime 11:00 will give 11:00 today local time
Example my New Year is at :
PS I:\PowerShell> get-WorldTime 01/01/2008
Local time is 12:00:00 AM Tuesday 01 January W. Europe Standard Time
UTC Time is 12/31/2007 11:00:00 PM
DaylightSavingTime will Start : 03/30/2008 02:00:00
Time Id DST DisplayName
---- -- --- -----------
11:00 PM 31 Dec Greenwich Standard Time False (GMT) Casablanca, Monrovia, Reykjavik
11:00 PM 31 Dec GMT Standard Time False (GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London
12:00 AM 01 Jan W. Europe Standard Time False (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
12:00 AM 01 Jan Central Europe Standard Time False (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
12:00 AM 01 Jan Romance Standard Time False (GMT+01:00) Brussels, Copenhagen, Madrid, Paris
12:00 AM 01 Jan Central European Standard Time False (GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb
12:00 AM 01 Jan W. Central Africa Standard Time False (GMT+01:00) West Central Africa
01:00 AM 01 Jan Jordan Standard Time False (GMT+02:00) Amman
01:00 AM 01 Jan GTB Standard Time False (GMT+02:00) Athens, Bucharest, Istanbul
01:00 AM 01 Jan Middle East Standard Time False (GMT+02:00) Beirut
01:00 AM 01 Jan Egypt Standard Time False (GMT+02:00) Cairo
01:00 AM 01 Jan South Africa Standard Time False (GMT+02:00) Harare, Pretoria
01:00 AM 01 Jan FLE Standard Time False (GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
01:00 AM 01 Jan Israel Standard Time False (GMT+02:00) Jerusalem
01:00 AM 01 Jan E. Europe Standard Time False (GMT+02:00) Minsk
01:00 AM 01 Jan Namibia Standard Time False (GMT+02:00) Windhoek
02:00 AM 01 Jan Arabic Standard Time False (GMT+03:00) Baghdad
02:00 AM 01 Jan Arab Standard Time False (GMT+03:00) Kuwait, Riyadh
02:00 AM 01 Jan Russian Standard Time False (GMT+03:00) Moscow, St. Petersburg, Volgograd
02:00 AM 01 Jan E. Africa Standard Time False (GMT+03:00) Nairobi
02:00 AM 01 Jan Georgian Standard Time False (GMT+03:00) Tbilisi
02:30 AM 01 Jan Iran Standard Time False (GMT+03:30) Tehran
03:00 AM 01 Jan Arabian Standard Time False (GMT+04:00) Abu Dhabi, Muscat
03:00 AM 01 Jan Azerbaijan Standard Time False (GMT+04:00) Baku
03:00 AM 01 Jan Caucasus Standard Time False (GMT+04:00) Yerevan
03:30 AM 01 Jan Afghanistan Standard Time False (GMT+04:30) Kabul
04:00 AM 01 Jan Ekaterinburg Standard Time False (GMT+05:00) Ekaterinburg
04:00 AM 01 Jan West Asia Standard Time False (GMT+05:00) Islamabad, Karachi, Tashkent
04:30 AM 01 Jan India Standard Time False (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi
04:30 AM 01 Jan Sri Lanka Standard Time False (GMT+05:30) Sri Jayawardenepura
04:45 AM 01 Jan Nepal Standard Time False (GMT+05:45) Kathmandu
05:00 AM 01 Jan N. Central Asia Standard Time False (GMT+06:00) Almaty, Novosibirsk
05:00 AM 01 Jan Central Asia Standard Time False (GMT+06:00) Astana, Dhaka
05:30 AM 01 Jan Myanmar Standard Time False (GMT+06:30) Yangon (Rangoon)
06:00 AM 01 Jan SE Asia Standard Time False (GMT+07:00) Bangkok, Hanoi, Jakarta
06:00 AM 01 Jan North Asia Standard Time False (GMT+07:00) Krasnoyarsk
07:00 AM 01 Jan China Standard Time False (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi
07:00 AM 01 Jan North Asia East Standard Time False (GMT+08:00) Irkutsk, Ulaan Bataar
07:00 AM 01 Jan Singapore Standard Time False (GMT+08:00) Kuala Lumpur, Singapore
08:00 AM 01 Jan W. Australia Standard Time True (GMT+08:00) Perth
07:00 AM 01 Jan Taipei Standard Time False (GMT+08:00) Taipei
08:00 AM 01 Jan Tokyo Standard Time False (GMT+09:00) Osaka, Sapporo, Tokyo
08:00 AM 01 Jan Korea Standard Time False (GMT+09:00) Seoul
08:00 AM 01 Jan Yakutsk Standard Time False (GMT+09:00) Yakutsk
09:30 AM 01 Jan Cen. Australia Standard Time True (GMT+09:30) Adelaide
08:30 AM 01 Jan AUS Central Standard Time False (GMT+09:30) Darwin
09:00 AM 01 Jan E. Australia Standard Time False (GMT+10:00) Brisbane
10:00 AM 01 Jan AUS Eastern Standard Time True (GMT+10:00) Canberra, Melbourne, Sydney
09:00 AM 01 Jan West Pacific Standard Time False (GMT+10:00) Guam, Port Moresby
10:00 AM 01 Jan Tasmania Standard Time True (GMT+10:00) Hobart
09:00 AM 01 Jan Vladivostok Standard Time False (GMT+10:00) Vladivostok
10:00 AM 01 Jan Central Pacific Standard Time False (GMT+11:00) Magadan, Solomon Is., New Caledonia
12:00 PM 01 Jan New Zealand Standard Time True (GMT+12:00) Auckland, Wellington
11:00 AM 01 Jan Fiji Standard Time False (GMT+12:00) Fiji, Kamchatka, Marshall Is.
12:00 PM 01 Jan Tonga Standard Time False (GMT+13:00) Nuku'alofa
10:00 PM 31 Dec Azores Standard Time False (GMT-01:00) Azores
10:00 PM 31 Dec Cape Verde Standard Time False (GMT-01:00) Cape Verde Is.
09:00 PM 31 Dec Mid-Atlantic Standard Time False (GMT-02:00) Mid-Atlantic
09:00 PM 31 Dec E. South America Standard Time True (GMT-03:00) Brasilia
08:00 PM 31 Dec SA Eastern Standard Time False (GMT-03:00) Buenos Aires, Georgetown
08:00 PM 31 Dec Greenland Standard Time False (GMT-03:00) Greenland
09:00 PM 31 Dec Montevideo Standard Time True (GMT-03:00) Montevideo
07:30 PM 31 Dec Newfoundland Standard Time False (GMT-03:30) Newfoundland
07:00 PM 31 Dec Atlantic Standard Time False (GMT-04:00) Atlantic Time (Canada)
07:00 PM 31 Dec SA Western Standard Time False (GMT-04:00) Caracas, La Paz
08:00 PM 31 Dec Central Brazilian Standard Time True (GMT-04:00) Manaus
08:00 PM 31 Dec Pacific SA Standard Time True (GMT-04:00) Santiago
06:00 PM 31 Dec SA Pacific Standard Time False (GMT-05:00) Bogota, Lima, Quito, Rio Branco
06:00 PM 31 Dec Eastern Standard Time False (GMT-05:00) Eastern Time (US & Canada)
06:00 PM 31 Dec US Eastern Standard Time False (GMT-05:00) Indiana (East)
05:00 PM 31 Dec Central America Standard Time False (GMT-06:00) Central America
05:00 PM 31 Dec Central Standard Time False (GMT-06:00) Central Time (US & Canada)
05:00 PM 31 Dec Central Standard Time (Mexico) False (GMT-06:00) Guadalajara, Mexico City, Monterrey
05:00 PM 31 Dec Canada Central Standard Time False (GMT-06:00) Saskatchewan
04:00 PM 31 Dec US Mountain Standard Time False (GMT-07:00) Arizona
04:00 PM 31 Dec Mountain Standard Time (Mexico) False (GMT-07:00) Chihuahua, La Paz, Mazatlan
04:00 PM 31 Dec Mountain Standard Time False (GMT-07:00) Mountain Time (US & Canada)
03:00 PM 31 Dec Pacific Standard Time False (GMT-08:00) Pacific Time (US & Canada)
03:00 PM 31 Dec Pacific Standard Time (Mexico) False (GMT-08:00) Tijuana, Baja California
02:00 PM 31 Dec Alaskan Standard Time False (GMT-09:00) Alaska
01:00 PM 31 Dec Hawaiian Standard Time False (GMT-10:00) Hawaii
12:00 PM 31 Dec Samoa Standard Time False (GMT-11:00) Midway Island, Samoa
11:00 AM 31 Dec Dateline Standard Time False (GMT-12:00) International Date Line West
For some more .NET calendar fun but then with the Chinese calender see a former blogpost : Happy Chinese New Year
Enjoy,
Greetings /\/\o\/\/