Quiero la hora actual en el formato siguiente en una cadena.Cómo obtener la hora actual en una cadena en formato personalizado en el objetivo c
dd-mm-aaaa HH: MM
¿Cómo?
Quiero la hora actual en el formato siguiente en una cadena.Cómo obtener la hora actual en una cadena en formato personalizado en el objetivo c
dd-mm-aaaa HH: MM
¿Cómo?
Quiere date formatter. He aquí un ejemplo:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-yyyy HH:mm"];
NSDate *currentDate = [NSDate date];
NSString *dateString = [formatter stringFromDate:currentDate];
De cualquier uso NSDateFormatter
como dijo Carl, o simplemente utilizar el bueno de strftime
, que también es perfectamente válido Objective-C:
#import <time.h>
time_t currentTime = time(NULL);
struct tm timeStruct;
localtime_r(¤tTime, &timeStruct);
char buffer[20];
strftime(buffer, 20, "%d-%m-%Y %H:%M", &timeStruct);
Tenga en cuenta que no puede hacer demasiado con una cadena C en el Objetivo C. Esto podría ser más conveniente al iniciar sesión en la consola. Puedes simplemente decir 'NSLog (@"% s ", buffer)'. –
Cualquier cosa que pueda hacer con una cadena C en C, puede hacerlo en Objective-C. Lo que quiere decir, casi todo. Uno debe sentirse libre de usar cadenas C y NSStrings, y elegir el apropiado para el caso de uso actual. Yo personalmente iría con la solución de Carl, pero es importante tener en cuenta que no es la única. –
Diría que la razón para no usar strftime (a pesar de generar una cadena C que luego debe convertir) es que también pierde la mayor flexibilidad de las opciones de formato de fecha de NSDateFormatter, incluida una mayor longitud variable de los resultados numéricos y pronto. –
aquí es una solución simple:
- (NSString *)stringWithDate:(NSDate *)date
{
return [NSDateFormatter localizedStringFromDate:date
dateStyle:NSDateFormatterMediumStyle
timeStyle:NSDateFormatterNoStyle];
}
Cambie dateStyle
y timeStyle
para que coincida con su requisito de formato.
Tal vez este sea más legible:
NSDateFormatter *date = [[NSDateFormatter alloc] init];
[date setDateFormat:@"HH:mm"];
NSString *dateString = [date stringFromDate:[NSDate date]];
[self.time setText:dateString];
En primer lugar creamos un NSDateFormatter incorporada en obj-c con el nombre fecha, a continuación, lo aplicamos por [[NSDateFormatter alloc] init];. Después de eso le decimos al procesador del código que queremos que nuestra fecha tenga HORA/MINUTO/SEGUNDO. Finalmente debemos hacer que nuestra fecha sea una cadena para trabajar con alerta o establecer el valor de una etiqueta, para hacer esto debemos crear una cadena con el método NSString luego usaremos esto: [date stringFromDate: [NSDate date]]
Have Fun with It.
Editado para iphone-ness. –
A menos que quiera mantenerlo; la administración de memoria puede o no entrar en el problema. –