なぜnscalendarのcomponentsからの日付が間違った日付を返すのですか?
-
29-09-2019 - |
質問
2010-10-11 00:00:00を期待しています
しかし、代わりに、2010-10-10 21:00:00 +0000を受け取ります
私は数時間を追加して希望の日付を受け取ることができることを知っていますが、なぜ前日に21時間を取得するのかわかりません...
助けてください!
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:2010];
[comps setMonth:10];
[comps setDay:11];
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *retDate = [cal dateFromComponents:comps];
解決
私はあなたの問題が設定することによって解決されるかもしれないと思います NSTimeZone
.
他のヒント
特定の時間形式が必要な場合は、そのフォーマッタを使用するか、これを書いて正しい時間を取得します。最初のオプション...
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let localDate = formatter.dateFromString("1989-10-17T05:00:00.000-0000")
または、コンポーネントから日付が必要な場合は、以下のコードを次のように使用します。
let calendar = NSCalendar.currentCalendar()
calendar.timeZone = NSTimeZone(name: "GMT")!
let date = calendar.dateFromComponents(components)
またはあなたが必要です
所属していません StackOverflow