15

NSDateをiPhoneアプリの特定の日付、時刻、タイムゾーンに設定する必要があります。

以下のサンプルコードは、iOS 4でsetTimeZoneが導入されたため、iOS 4で正常に機能します。iOS3.0デバイスで使用できるように、setTimeZoneを使用せずにNSDateを日付、時刻、タイムゾーンに簡単に設定するにはどうすればよいですか。

    NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:2010];
[comps setMonth:8];
[comps setDay:24];
[comps setHour:17];
[comps setMinute:5];
[comps setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"] ];

NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *referenceTime = [cal dateFromComponents:comps];

これは単純なはずですが、どういうわけかNSDate、コンポーネント、カレンダー、そして私は良い友達ではありません...

4

2 に答える 2

3

NDatesには、それ自体にタイムゾーンの概念はありません。基本的に、GMTの特定の任意の日付から数秒です。そのため、タイムゾーンを指定することはできません。タイムゾーンが重要な場合は、時間とタイムゾーンの両方を追跡する必要があります。

于 2010-09-07T03:54:12.663 に答える
3

からのNSCalendar作成に使用するオブジェクトにタイムゾーンを設定できるかどうか疑問に思います。私はこれを試したことがなく、うまくいくかどうかはわかりませんが、おそらく試す価値があります。NSDateNSDateComponents

于 2010-09-07T03:56:34.283 に答える