2

2012-06-30次のコードを使用して、日付形式のNSStringをNSDateに変換しています。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormatter dateFromString:dateString];

[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]NSStringの値を省略する2012-06-29 23:00:00と、自動的に追加されるタイムゾーン情報が追加されます。これは、システムが現在のタイムゾーンについていくつかの仮定を持っていることを示します。

上記の方法でタイムゾーンを設定すると、変換は正常に機能します。

ただし、ユーザーが別のタイムゾーンにいる場合はどうなりますか?

iOSが日付だけを解析し、時間情報を追加しないようにするにはどうすればよいですか?

4

1 に答える 1

6

データは変更されません。タイムゾーンはその日付自体には影響しません。日付の表示に影響するだけなので、13:00 GMTと表示される日付は、14:00GMT+1と同じ表示になります。

デバイス使用の現在のタイムゾーンへの日付変換の代わりに、タイムゾーンを気にする必要はありません

[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];

これにより、デバイスのタイムゾーンが設定されます

于 2012-07-03T09:56:11.853 に答える