Como criar uma lista de fuso horários em C#

Veja como é fácil criar uma lista de fuso horários!

Suponhamos que você está desenvolvendo um sistema que requer que o usuário tenha que escolher qual o fuso horário em que ele está. Agora imagine que você tenha que adicionar 40 fusos em um dropdownlist manualmente.

A não ser que você precise de ter uma lista de fusos dentro do banco de dados você pode usar o seguinte código:

public static IEnumerable<SelectListItem> TimeZoneCollection
{
	get
	{
		return new SelectList(TimeZoneInfo.GetSystemTimeZones()
			.Select(q => new SelectListItem
						{
							Text = q.DisplayName,
							Value = (q.DisplayName.Substring(0, 5) != "(UTC)") ? q.DisplayName.Substring(4, 3) : "0"
						}
 
				    ), "Value""Text");
	}
}

Agora é só dar bind no dropdownlist e voilà.

P.S.: Caso você melhore o código me avise. :)