This is just a short example how to display a DateTime with the correct time for everyone in the world. For this to work you need to persist all DateTime values as UTC when storing values.
DateTime.Add(TimeZoneInfo.FindSystemTimeZoneById(timeZoneId).GetUtcOffset(DateTime));
Where timeZoneId is a string with the name of the users timezone.
Here are a list of the existing timezones.
(The string left of = is the timeZoneId and the string to the right is the name of the timezone.)
Dateline Standard Time = (UTC-12:00) International Date Line West
UTC-11 = (UTC-11:00) Coordinated Universal Time-11
Samoa Standard Time = (UTC-11:00) Samoa
Hawaiian Standard Time = (UTC-10:00) Hawaii
Alaskan Standard Time = (UTC-09:00) Alaska
Pacific Standard Time (Mexico) = (UTC-08:00) Baja California
Pacific Standard Time = (UTC-08:00) Pacific Time (US & Canada)
US Mountain Standard Time = (UTC-07:00) Arizona
Mountain Standard Time (Mexico) = (UTC-07:00) Chihuahua, La Paz, Mazatlan
Mountain Standard Time = (UTC-07:00) Mountain Time (US & Canada)
Central America Standard Time = (UTC-06:00) Central America
Central Standard Time = (UTC-06:00) Central Time (US & Canada)
Central Standard Time (Mexico) = (UTC-06:00) Guadalajara, Mexico City, Monterrey
Canada Central Standard Time = (UTC-06:00) Saskatchewan
SA Pacific Standard Time = (UTC-05:00) Bogota, Lima, Quito
Eastern Standard Time = (UTC-05:00) Eastern Time (US & Canada)
US Eastern Standard Time = (UTC-05:00) Indiana (East)
Venezuela Standard Time = (UTC-04:30) Caracas
Paraguay Standard Time = (UTC-04:00) Asuncion
Atlantic Standard Time = (UTC-04:00) Atlantic Time (Canada)
Central Brazilian Standard Time = (UTC-04:00) Cuiaba
SA Western Standard Time = (UTC-04:00) Georgetown, La Paz, Manaus, San Juan
Pacific SA Standard Time = (UTC-04:00) Santiago
Newfoundland Standard Time = (UTC-03:30) Newfoundland
E. South America Standard Time = (UTC-03:00) Brasilia
Argentina Standard Time = (UTC-03:00) Buenos Aires
SA Eastern Standard Time = (UTC-03:00) Cayenne, Fortaleza
Greenland Standard Time = (UTC-03:00) Greenland
Montevideo Standard Time = (UTC-03:00) Montevideo
UTC-02 = (UTC-02:00) Coordinated Universal Time-02
Mid-Atlantic Standard Time = (UTC-02:00) Mid-Atlantic
Azores Standard Time = (UTC-01:00) Azores
Cape Verde Standard Time = (UTC-01:00) Cape Verde Is.
Morocco Standard Time = (UTC) Casablanca
UTC = (UTC) Coordinated Universal Time
GMT Standard Time = (UTC) Dublin, Edinburgh, Lisbon, London
Greenwich Standard Time = (UTC) Monrovia, Reykjavik
W. Europe Standard Time = (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
Central Europe Standard Time = (UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague
Romance Standard Time = (UTC+01:00) Brussels, Copenhagen, Madrid, Paris
Central European Standard Time = (UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb
W. Central Africa Standard Time = (UTC+01:00) West Central Africa
Namibia Standard Time = (UTC+01:00) Windhoek
Jordan Standard Time = (UTC+02:00) Amman
GTB Standard Time = (UTC+02:00) Athens, Bucharest
Middle East Standard Time = (UTC+02:00) Beirut
Egypt Standard Time = (UTC+02:00) Cairo
Syria Standard Time = (UTC+02:00) Damascus
South Africa Standard Time = (UTC+02:00) Harare, Pretoria
FLE Standard Time = (UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius
Turkey Standard Time = (UTC+02:00) Istanbul
Israel Standard Time = (UTC+02:00) Jerusalem
E. Europe Standard Time = (UTC+02:00) Minsk
Arabic Standard Time = (UTC+03:00) Baghdad
Kaliningrad Standard Time = (UTC+03:00) Kaliningrad
Arab Standard Time = (UTC+03:00) Kuwait, Riyadh
E. Africa Standard Time = (UTC+03:00) Nairobi
Iran Standard Time = (UTC+03:30) Tehran
Arabian Standard Time = (UTC+04:00) Abu Dhabi, Muscat
Azerbaijan Standard Time = (UTC+04:00) Baku
Russian Standard Time = (UTC+04:00) Moscow, St. Petersburg, Volgograd
Mauritius Standard Time = (UTC+04:00) Port Louis
Georgian Standard Time = (UTC+04:00) Tbilisi
Caucasus Standard Time = (UTC+04:00) Yerevan
Afghanistan Standard Time = (UTC+04:30) Kabul
Pakistan Standard Time = (UTC+05:00) Islamabad, Karachi
West Asia Standard Time = (UTC+05:00) Tashkent
India Standard Time = (UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi
Sri Lanka Standard Time = (UTC+05:30) Sri Jayawardenepura
Nepal Standard Time = (UTC+05:45) Kathmandu
Central Asia Standard Time = (UTC+06:00) Astana
Bangladesh Standard Time = (UTC+06:00) Dhaka
Ekaterinburg Standard Time = (UTC+06:00) Ekaterinburg
Myanmar Standard Time = (UTC+06:30) Yangon (Rangoon)
SE Asia Standard Time = (UTC+07:00) Bangkok, Hanoi, Jakarta
N. Central Asia Standard Time = (UTC+07:00) Novosibirsk
China Standard Time = (UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi
North Asia Standard Time = (UTC+08:00) Krasnoyarsk
Singapore Standard Time = (UTC+08:00) Kuala Lumpur, Singapore
W. Australia Standard Time = (UTC+08:00) Perth
Taipei Standard Time = (UTC+08:00) Taipei
Ulaanbaatar Standard Time = (UTC+08:00) Ulaanbaatar
North Asia East Standard Time = (UTC+09:00) Irkutsk
Tokyo Standard Time = (UTC+09:00) Osaka, Sapporo, Tokyo
Korea Standard Time = (UTC+09:00) Seoul
Cen. Australia Standard Time = (UTC+09:30) Adelaide
AUS Central Standard Time = (UTC+09:30) Darwin
E. Australia Standard Time = (UTC+10:00) Brisbane
AUS Eastern Standard Time = (UTC+10:00) Canberra, Melbourne, Sydney
West Pacific Standard Time = (UTC+10:00) Guam, Port Moresby
Tasmania Standard Time = (UTC+10:00) Hobart
Yakutsk Standard Time = (UTC+10:00) Yakutsk
Central Pacific Standard Time = (UTC+11:00) Solomon Is., New Caledonia
Vladivostok Standard Time = (UTC+11:00) Vladivostok
New Zealand Standard Time = (UTC+12:00) Auckland, Wellington
UTC+12 = (UTC+12:00) Coordinated Universal Time+12
Fiji Standard Time = (UTC+12:00) Fiji
Magadan Standard Time = (UTC+12:00) Magadan
Kamchatka Standard Time = (UTC+12:00) Petropavlovsk-Kamchatsky – Old
Tonga Standard Time = (UTC+13:00) Nuku'alofa