我試圖使用Ruby來確定一個國家的時區(來自2個字母的ISO3166國家代碼)。我曾嘗試紅寶石寶石tzinfo如何在Ruby中獲取一個國家的首都時區? (TZInfo)
我能得到巴西的時區是這樣的:
TZInfo::Country.get("BR").zone_identifiers
=> ["America/Noronha", "America/Belem", "America/Fortaleza", "America/Recife", "America/Araguaina", "America/Maceio", "America/Bahia", "America/Sao_Paulo", "America/Campo_Grande", "America/Cuiaba", "America/Santarem", "America/Porto_Velho", "America/Boa_Vista", "America/Manaus", "America/Eirunepe", "America/Rio_Branco"]
巴西有幾個時區。上面的列表根據與UTC的接近性進行排序。在這種情況下,從東到西。我們想要獲得主要時區,我指的是該國首都所在的時區。 「America/Noronha」是大西洋上一個島嶼的時區。在這種情況下,我們希望獲得巴西利亞(巴西首都)的時區。
基於tzinfo文件,我可以「根據數據源按重要性排序」獲得時區列表使用類TZInfo :: CountryInfo(不知道是什麼的DataSource)
但這似乎不工作:
>> x=TZInfo::CountryInfo.new('BR', 'Brazil')
=> #<TZInfo::CountryInfo: BR>
>> x.zones
=> []
>> x.zone_identifiers
=> []
那麼,如何輕鬆獲得一個國家的首都所在的時區?有什麼寶石能夠支持首都時區嗎?
謝謝。
http://www.ruby-doc.org/core-2.1.1/Time.html#method-i-zone –