1

iPhone プログラミングで NSDateFormatter を使用すると問題が発生します。以下は私のコードスニペットです。

NSString *inputDate = @"2011-03-14";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSDate *entryDate = [formatter dateFromString:inputDate];
[formatter release]

私が得ている結果は

2011-03-13 16:00:00 +0000

これは 2011-03-14 00:00:00 に相当する GMT です。(私のタイムゾーンは GMT +08:00 です)

なぜ私はこれを得ているのですか?結果として 2011-03-14 00:00:00 を取得するには?

ありがとう。

〜1月

4

3 に答える 3

2

を使用してタイムゾーンを設定できます

[formatter setTimeZone:...]

. または、フォーマッタのロケールを設定しようとします

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"..."];
[formatter setLocale:locale];
于 2011-03-16T07:11:36.187 に答える
0

元の文字列にタイムゾーンを追加してみることができます

NSString *inputDate = @"2011-03-14+0800";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-ddZZZ"];
NSDate *entryDate = [formatter dateFromString:inputDate];
[formatter release]
于 2011-03-16T07:12:46.533 に答える
0

Plsはこれを見てください

NSDateFormatter が予期しない結果を返す

これはAppleが推奨するものです

于 2011-03-16T07:10:55.890 に答える