'Return the time zones sorted by some key.
key must be a function that takes a TimeZoneInfo object and returns
a value suitable for sorting on.
The key defaults to the bias (descending), as is done in Windows
(see http://blogs.msdn.com/michkap/archive/2006/12/22/1350684.aspx)'

@staticmethod
def get_sorted_time_zones(key=None):

    key = (key or (lambda tzi: (- tzi.staticInfo.bias)))
    zones = TimeZoneInfo.get_all_time_zones()
    zones.sort(key=key)
    return zones
