La registrazione di un NSDate
nel debugger è in qualche modo fuorviante in quanto fornisce un giorno e un'ora di calendario per un determinato fuso orario: UTC/GMT. Tuttavia, NSDate
non ha alcun fuso orario intrinseco o alcuna relazione intrinseca a come gli esseri umani percepiscono e pensano alle date. Invece, è un timestamp. Classi come NSDateComponents
, NSTimeZone
, NSDateFormatter
e così via tutti esistono per fornire contesto e formattazione umana.
Quindi quello che viene visualizzato è il formato di data e ora formattato per quel particolare formato e fuso orario UTC, che è come appare NSDate
quando viene stampato nel debugger o nella console. Se dovessi calcolare lo sfasamento del fuso orario tra UTC e il tuo fuso orario, troverai che la data rappresenta il timestamp che hai fornito, e non una, comunque, molte ore di pausa.
fonte
2012-11-21 09:43:37
Il metodo [Data NDate] restituisce la data e l'ora correnti in base alle impostazioni locali del dispositivo. Se si desidera impostare impostazioni internazionali diverse, è necessario impostarlo manualmente con "descriptionWithLocale" che restituisce una rappresentazione in formato stringa del destinatario utilizzando le impostazioni locali specificate. – ldindu