Howard's Answer es correcto y por favor vote y agréguela.
Como referencia, creo que es útil explicar la diferencia entre los objetos de fecha y las representaciones de fecha localizadas.
En muchos lenguajes de programación, los objetos de fecha se utilizan para representar puntos únicos en el tiempo. Ignorando los argumentos de Relativistic se puede suponer que en cualquier instancia podemos definir un punto en el tiempo que sea universal para todos, independientemente de cómo midamos el tiempo.
Si para cada punto en el tiempo pudiéramos construir una etiqueta única, esa etiqueta podría pasarse y referenciarse sin ambigüedades.El objetivo de los objetos de fecha es actuar como una etiqueta universal única para un punto dado en el tiempo.
Uno puede inventar cualquier cantidad de técnicas para construir un esquema de etiquetado así y la forma en que cada objeto de fecha elige hacerlo es irrelevante para cualquiera que lo use.
Un ejemplo puede ser utilizar un desplazamiento numérico de un evento universal (X segundos desde que el sol explotó).
Es sólo cuando se quiere tomar un punto de tiempo y serializar en una cadena legible por humanos que tenemos que hacer frente a las complejidades de las zonas horarias, locales, etc ...
(Fecha Local cadena) + (Fecha formateador) => Tiempo Punto
Tiempo Punto + (Fecha formateador) => (cadena de fecha local)
Cada vez que el punto es universal ... no existe un new york time point, o gmt time point, solo una vez que convierte un punto de tiempo en una cadena local (usando un formateador de fecha) hace cualquier asociación a una zona horaria aparece.
Nota: Estoy seguro de que hay muchos blogs/artículos sobre este tema, pero mi google foo me está fallando a esta hora. Si alguien tiene el entusiasmo de ampliar este tema, siéntase libre de hacerlo.
Si bien esto parece bueno en primer lugar, quiero a fuertemente consejos contra el uso de este método, que puede conducir a una gran confusión. Una fecha representa un solo punto en el tiempo. El problema es que quieres diferentes * representaciones * de esta fecha. El mismo punto en el tiempo tiene diferentes "nombres" en Delhi y en Nueva York, etc. Por lo tanto, piense mucho sobre cuál es su contexto. Puede establecer la propiedad calendar.timeZone en UIDatePickers para hacer que usen otra zona horaria, y como muestra Howard, puede personalizar los formateadores de fechas para que funcionen con diferentes zonas. – Felixyz
Un objeto NSDate representa un punto en el tiempo, independientemente de la zona horaria, etc. ... nunca es necesario convertir un NSDate a otro ... solo la serialización (conversión ay desde cadenas) de la zona horaria/configuración regional, si GMT u otro viene en cuenta. La respuesta de Howards es correcta. – Akusete
@Akusete otros puntos de serialización son UIDatePicker y NSCalendar. –