¿Cómo establecer un minuto de hora en NSDate mediante programación?
-
24-10-2019 - |
Pregunta
Tengo el formato de 2:01:20 pm en una etiqueta; Después de algunos cálculos, necesito cambiar la hora y/o minuto de esa etiqueta.
Es decir, ¿es posible cambiar ese valor de la etiqueta, convirtiéndolo como objeto nsdate y modificando horas y minuto como 3:20:30 pm?
¿Hay algún método setter para esto?
Solución
Si necesita calcular instancias reales específicas en el tiempo, por ejemplo, 3:20:30 pm 23 de octubre de 2010, entonces desea usar NSCALENDAR que le permite descomponer las fechas y hacer cálculos relacionados con la fecha.
Palabra de advertencia. Los cálculos de fecha y hora son sorprendentemente complejos y detallados. Espere pasar un par de horas aprendiendo la API.
Otros consejos
La respuesta a tu primera pregunta "¿Cómo establecer un minuto de hora en NSDate programáticamente?"Está siguiendo:
NSDate* result;
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setMinute:0];
[comps setHour:0];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
result = [gregorian dateFromComponents:comps];
[comps release];