1

たとえば、2 つの日付 (2 つの異なる NSString で記述) があります。

31/12/2011

31/03/2012

今日がこの範囲内にあるかどうかを確認する必要があります。

NSStringから日付を読み取るために、私はこれをやっています:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy"];
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
NSDate *mydate = [dateFormatter dateFromString:my_string];
NSLog(@"%@", mydate);

ただし、この例では、ログはこれです

2011-12-30 23:00:00 +0000
2012-03-30 23:00:00 +0000

というわけで1時間遅れ。私はそれを使用することを知っています

NSString *string = [dateFormatter stringFromDate:my_date];

私の文字列は問題ありませんが、今日が NSString を使用して範囲内にあるかどうかはわかりません (またはない?)!

だから私はNSDateを使わなければなりませんが、どうすれば「タイムゾーン」の問題を解決できますか?

また、私もこの問題を使用しています

[NSDate date];

それは1時間前に私に戻ってきます(そして、誰かが真夜中にチェックした場合、電話の場合は前日になるので、私はそれを望んでいません!)

4

2 に答える 2

1

以下が役立つはずです:

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"EST"]];

詳細については、この質問をチェックしてください...それは似ています。「EST」は、必要なタイムゾーンに置き換えることができます。

于 2011-11-24T15:24:22.177 に答える
0

私が間違っているかもしれませんが、この場合、タイムゾーンを気にする必要はないようです。日付だけが dd/MM/yyyy 形式の場合、NSDateFormatter で解析すると、デフォルトで現在のタイムゾーンが使用されます。そのため、今日の日付と比較する場合、3 つの日付すべてが同じタイムゾーンにあり、日付/時刻の調整は実行されません。

于 2011-11-24T15:52:38.560 に答える