2

で表される時点があると仮定します

NSDate* now = [NSDate date];

例: 2012-11-07 13:44:55 +0000 (デバイスの現地時間)

また、各国の名前と地理座標 (対数、緯度) を持つ国の配列もあります。

例:イングランド、51.5、-0.116667

Q: 上記の日時をどのように計算し、特定の国での現在の時刻に変換しますか?

(ちなみに、私はむしろローカルなものを持っていて、外部APIを呼び出していません)

4

1 に答える 1

3

利用可能なタイム ゾーンのリストを取得します。

[NSTimeZone abbreviationDictionary]

これは、この種の何かを返します。

EST = "America/New_York";
GMT = GMT;
GST = "Asia/Dubai";
HKT = "Asia/Hong_Kong";
HST = "Pacific/Honolulu";
ICT = "Asia/Bangkok";
IRST = "Asia/Tehran";
IST = "Asia/Calcutta";
JST = "Asia/Tokyo";
KST = "Asia/Seoul";
MDT = "America/Denver";
MSD = "Europe/Moscow";
MSK = "Europe/Moscow";

ここで、このタイム ゾーンの省略キー (たとえば、モスクワの MSD) を使用して、GMT からモスクワのタイム ゾーンにオフセットされた秒数を取得します。

NSInteger no_of_seconds = [[NSTimeZone timeZoneWithAbbreviation:@"MSD"] secondsFromGMT];

'no_of_seconds' を現在の日付に追加して、目的の場所 (この場合はモスクワ) の日付を取得できるようになりました。

[NSDate dateWithTimeIntervalSinceNow:no_of_seconds]
于 2012-11-30T06:28:57.750 に答える