using System.Collections.Generic;
using System.Collections;
public static void Main()
var timeZones = TimeZoneInfo.GetSystemTimeZones();
string[] expectedZoneIDs = {"UTC", "GMT Standard Time", "Greenwich Standard Time"};
foreach (var timeZone in timeZones)
var zoneId = timeZone.Id;
if(expectedZoneIDs.Contains(zoneId))
var dateTime = DateTime.Now;
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(zoneId);
var dateTimeByZoneId = TimeZoneInfo.ConvertTime(dateTime, TimeZoneInfo.Local, timeZoneInfo);
var dateTimeFromUTC = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, timeZoneInfo);
var isDaylightSavings = timeZoneInfo.IsDaylightSavingTime(dateTimeByZoneId);
var isDaylightSavingsUTC = timeZoneInfo.IsDaylightSavingTime(dateTimeFromUTC);
Console.WriteLine("Zone : {0} DateTimeUTC: {1}", zoneId, dateTime);
Console.WriteLine("DateTimeFromLocal: {0} isDaylightSaving: {1}", dateTimeByZoneId, isDaylightSavings);
Console.WriteLine("DateTimeFromUTC: {0} isDaylightSavingUTC: {1}", dateTimeFromUTC, isDaylightSavingsUTC);