Domanda

Mi aspetto 2010-10-11 00:00:00

Ma invece ricevo 2010-10-10 21:00:00 +0000

Lo so, che posso aggiungere un paio d'ore e ricevere data desiderata, ma non capisco il motivo per cui ho giorno precedente con 21 ore ...

, aiuto!

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];
È stato utile?

Soluzione

Credo che il problema può essere risolto impostando la NSTimeZone.

Altri suggerimenti

Se avete bisogno di un uso formato orario specifico che formattatore oppure scrivere questo per ottenere il tempo corretto. prima opzione ...

let formatter = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
    let localDate = formatter.dateFromString("1989-10-17T05:00:00.000-0000")

o se è necessario data dai componenti utilizzare il sottostante codice come ...

let calendar = NSCalendar.currentCalendar()
    calendar.timeZone = NSTimeZone(name: "GMT")!
    let date = calendar.dateFromComponents(components)

o è necessario

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top