1

この関数を作成して、オフセット付きの共通タイムゾーンの 2 つのタプルを取得しました。

[(item, datetime.datetime.now(pytz.timezone(item)).strftime('%z') + " " + item) for item in pytz.common_timezones]

関数からこのようなものが返されました

[('Africa/Abidjan', '+0000 Africa/Abidjan'), ('Africa/Accra', '+0000 Africa/Accra'), ('Africa/Addis_Ababa', '+0300 Africa/Addis_Ababa'), ('Africa/Algiers', '+0100 Africa/Algiers'), ('Africa/Asmara', '+0300 Africa/Asmara'), ('Africa/Bamako', '+0000 Africa/Bamako'), ('Africa/Bangui', '+0100 Africa/Bangui'), ('Africa/Banjul', '+0000 Africa/Banjul'), ('Africa/Bissau', '+0000 Africa/Bissau'), ('Africa/Blantyre', '+0200 Africa/Blantyre'), ('Africa/Brazzaville', '+0100 Africa/Brazzaville'), ('Africa/Bujumbura', '+0200 Africa/Bujumbura'), ('Africa/Cairo', '+0200 Africa/Cairo'), ('Africa/Casablanca', '+0100 Africa/Casablanca'), ('Africa/Ceuta', '+0200 Africa/Ceuta'), ('Africa/Conakry', '+0000 Africa/Conakry'), ('Africa/Dakar', '+0000 Africa/Dakar'), ('Africa/Dar_es_Salaam', '+0300 Africa/Dar_es_Salaam'), ('Africa/Djibouti', '+0300 Africa/Djibouti'), ('Africa/Douala', '+0100 Africa/Douala'), ('Africa/El_Aaiun', '+0000 Africa/El_Aaiun'), ('Africa/Freetown', '+0000 Africa/Freetown'), ('Africa/Gaborone', '+0200 Africa/Gaborone'), ('Africa/Harare', '+0200 Africa/Harare'), ('Africa/Johannesburg', '+0200 Africa/Johannesburg'), ('Africa/Juba', '+0300 Africa/Juba'), ('Africa/Kampala', '+0300 Africa/Kampala'), ('Africa/Khartoum', '+0300 Africa/Khartoum'), ('Africa/Kigali', '+0200 Africa/Kigali'), ('Africa/Kinshasa', '+0100 Africa/Kinshasa'), ('Africa/Lagos', '+0100 Africa/Lagos'), ('Africa/Libreville', '+0100 Africa/Libreville'), ('Africa/Lome', '+0000 Africa/Lome'), ('Africa/Luanda', '+0100 Africa/Luanda'), ('Africa/Lubumbashi', '+0200 Africa/Lubumbashi'), ('Africa/Lusaka', '+0200 Africa/Lusaka'), (

オフセットで並べ替えるにはどうすればよいですか?現在、ASCでソートされていますか

4

4 に答える 4

1

これを試して:

tzs = [('Africa/Abidjan', '+0000 Africa/Abidjan'), ('Africa/Accra', '+0000 Africa/Accra'), ('Africa/Addis_Ababa', '+0300 Africa/Addis_Ababa'), ('Africa/Algiers', '+0100 Africa/Algiers'), ('Africa/Asmara', '+0300 Africa/Asmara'), ('Africa/Bamako', '+0000 Africa/Bamako'), ('Africa/Bangui', '+0100 Africa/Bangui'), ('Africa/Banjul', '+0000 Africa/Banjul'), ('Africa/Bissau', '+0000 Africa/Bissau'), ('Africa/Blantyre', '+0200 Africa/Blantyre'), ('Africa/Brazzaville', '+0100 Africa/Brazzaville'), ('Africa/Bujumbura', '+0200 Africa/Bujumbura'), ('Africa/Cairo', '+0200 Africa/Cairo'), ('Africa/Casablanca', '+0100 Africa/Casablanca'), ('Africa/Ceuta', '+0200 Africa/Ceuta'), ('Africa/Conakry', '+0000 Africa/Conakry'), ('Africa/Dakar', '+0000 Africa/Dakar'), ('Africa/Dar_es_Salaam', '+0300 Africa/Dar_es_Salaam'), ('Africa/Djibouti', '+0300 Africa/Djibouti'), ('Africa/Douala', '+0100 Africa/Douala'), ('Africa/El_Aaiun', '+0000 Africa/El_Aaiun'), ('Africa/Freetown', '+0000 Africa/Freetown'), ('Africa/Gaborone', '+0200 Africa/Gaborone'), ('Africa/Harare', '+0200 Africa/Harare'), ('Africa/Johannesburg', '+0200 Africa/Johannesburg'), ('Africa/Juba', '+0300 Africa/Juba'), ('Africa/Kampala', '+0300 Africa/Kampala'), ('Africa/Khartoum', '+0300 Africa/Khartoum'), ('Africa/Kigali', '+0200 Africa/Kigali'), ('Africa/Kinshasa', '+0100 Africa/Kinshasa'), ('Africa/Lagos', '+0100 Africa/Lagos'), ('Africa/Libreville', '+0100 Africa/Libreville'), ('Africa/Lome', '+0000 Africa/Lome'), ('Africa/Luanda', '+0100 Africa/Luanda'), ('Africa/Lubumbashi', '+0200 Africa/Lubumbashi'), ('Africa/Lusaka', '+0200 Africa/Lusaka')]

pre_sort_tzs = []

for tz in tzs:
    pre_sort_tzs.append([int(tz[1][0:5], 10), (tz)])

sorted_tzs = []

for tz in sorted(pre_sort_tzs):
    sorted_tzs.append(tz[1])

print sorted_tzs

出力:

[('Africa/Abidjan', '+0000 Africa/Abidjan'), ('Africa/Accra', '+0000 Africa/Accra'), ('Africa/Bamako', '+0000 Africa/Bamako'), ('Africa/Banjul', '+0000 Africa/Banjul'), ('Africa/Bissau', '+0000 Africa/Bissau'), ('Africa/Conakry', '+0000 Africa/Conakry'), ('Africa/Dakar', '+0000 Africa/Dakar'), ('Africa/El_Aaiun', '+0000 Africa/El_Aaiun'), ('Africa/Freetown', '+0000 Africa/Freetown'), ('Africa/Lome', '+0000 Africa/Lome'), ('Africa/Algiers', '+0100 Africa/Algiers'), ('Africa/Bangui', '+0100 Africa/Bangui'), ('Africa/Brazzaville', '+0100 Africa/Brazzaville'), ('Africa/Casablanca', '+0100 Africa/Casablanca'), ('Africa/Douala', '+0100 Africa/Douala'), ('Africa/Kinshasa', '+0100 Africa/Kinshasa'), ('Africa/Lagos', '+0100 Africa/Lagos'), ('Africa/Libreville', '+0100 Africa/Libreville'), ('Africa/Luanda', '+0100 Africa/Luanda'), ('Africa/Blantyre', '+0200 Africa/Blantyre'), ('Africa/Bujumbura', '+0200 Africa/Bujumbura'), ('Africa/Cairo', '+0200 Africa/Cairo'), ('Africa/Ceuta', '+0200 Africa/Ceuta'), ('Africa/Gaborone', '+0200 Africa/Gaborone'), ('Africa/Harare', '+0200 Africa/Harare'), ('Africa/Johannesburg', '+0200 Africa/Johannesburg'), ('Africa/Kigali', '+0200 Africa/Kigali'), ('Africa/Lubumbashi', '+0200 Africa/Lubumbashi'), ('Africa/Lusaka', '+0200 Africa/Lusaka'), ('Africa/Addis_Ababa', '+0300 Africa/Addis_Ababa'), ('Africa/Asmara', '+0300Africa/Asmara'), ('Africa/Dar_es_Salaam', '+0300 Africa/Dar_es_Salaam'), ('Africa/Djibouti', '+0300 Africa/Djibouti'), ('Africa/Juba', '+0300 Africa/Juba'), ('Africa/Kampala', '+0300 Africa/Kampala'), ('Africa/Khartoum', '+0300 Africa/Khartoum')]

短いバージョン:

tzs = [...]

pre_sort_tzs = map(lambda x: [int(x[1][0:5], 10), (x)], tzs)
sorted_tzs = map(lambda x: x[1], sorted(pre_sort_tzs))

print sorted_tzs
于 2013-08-29T14:24:57.993 に答える
0

私はこのプロジェクトで答えを見つけました

https://github.com/brosner/django-timezones/blob/master/timezones/zones.py

それがまさに私が欲しかったものです。

PRETTY_TIMEZONE_CHOICES をインポートしましたが、この選択は正しい順序でした。

于 2013-08-29T14:25:12.450 に答える