Nếu tất cả họ đang ở châu Á, tại sao không sử dụng một cái gì đó như:
MYCITY=Tokyo
[NSTimeZone timeZoneWithName:@"Asia/$MYCITY"]
Nếu bạn cần biết thêm các thành phố và các múi giờ, bạn có thể tạo một danh sách tập tin văn bản tĩnh dựa trên tất cả các múi giờ tìm thấy tại/usr/share/zoneinfo.
tạo tệp 'timezones.by.city.txt' bằng văn bản sau. (Cụt ở đây.)
"Asia/Aden"
"Asia/Almaty"
"Asia/Amman"
"Asia/Anadyr"
"Asia/Aqtau"
"Asia/Aqtobe"
"Asia/Ashgabat"
"Asia/Ashkhabad"
"Asia/Baghdad"
"Asia/Bahrain"
"Asia/Baku"
"Asia/Bangkok"
"Asia/Beirut"
"Asia/Bishkek"
... etc.
"US/Alaska"
"US/Aleutian"
"US/Arizona"
"US/Central"
"US/Eastern"
"US/East-Indiana"
"US/Hawaii"
"US/Indiana-Starke"
"US/Michigan"
"US/Mountain"
"US/Pacific"
"US/Pacific-New"
"US/Samoa"
Sau đó:
MYCITY=Bangkok
MYTZ=`grep "$MYCITY" ./timezones.by.city.txt`
[df setTimeZone:[NSTimeZone timeZoneWithName:@"$MYTZ"]]
Cảm ơn bạn đã theo dõi. Rất hữu ích cho chuyển đổi "time_zone" của người dùng Twitter. – DavidAWalsh
Đây là phiên bản cập nhật (với ví dụ sử dụng) cho Rails 3.2: https://gist.github.com/rjregenold/5243201 –