cocoa - texto - Formateo de NSDate en estilos específicos para el año, mes, día y hora, minuto, segundos
formato hora minuto excel (8)
Swift 3
extension Date {
func toString(template: String) -> String {
let formatter = DateFormatter()
formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: template, options: 0, locale: NSLocale.current)
return formatter.string(from: self)
}
}
Uso
let now = Date()
let nowStr0 = now.toString(template: "EEEEdMMM") // Tuesday, May 9
let nowStr1 = now.toString(template: "yyyy-MM-dd") // 2017-05-09
let nowStr2 = now.toString(template: "HH:mm:ss") // 17:47:09
Juega con la plantilla para que coincida con tus necesidades. Ejemplos y documentos here para ayudarlo a construir la plantilla que necesita.
Nota
Es posible que desee almacenar en caché su DateFormatter
si planea usarlo en TableView
por ejemplo. Para dar una idea, el bucle de más de 1000 fechas me llevó 0.5 segundos usando la función toString(template: String)
, en comparación con 0.05 segundos usando myFormatter.string(from: Date)
.
Básicamente necesito obtener la fecha y hora actual por separado, formateado como:
2009-04-26 11:06:54
El código a continuación, de otra pregunta sobre el mismo tema, genera
now: |2009-06-01 23:18:23 +0100| dateString: |Jun 01, 2009 23:18| parsed: |2009-06-01 23:18:00 +0100|
Esto es casi lo que estoy buscando, pero quiero separar el día y la hora.
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, yyyy HH:mm"];
NSDate *now = [[NSDate alloc] init];
NSString *dateString = [format stringFromDate:now];
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, yyyy"];
NSDate *parsed = [inFormat dateFromString:dateString];
NSLog(@"/n"
"now: |%@| /n"
"dateString: |%@| /n"
"parsed: |%@|", now, dateString, parsed);
Las cadenas de formato de iPhone están en formato Unicode . Detrás del enlace hay una tabla que explica lo que significan todas las letras anteriores para que pueda construir la suya propia.
Y, por supuesto, no se olvide de liberar los formateadores de fecha cuando haya terminado con ellos. El código anterior pierde format
, now
e inFormat
.
esto es lo que utilicé:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];
NSDate *now = [[NSDate alloc] init];
NSString *theDate = [dateFormat stringFromDate:now];
NSString *theTime = [timeFormat stringFromDate:now];
NSLog(@"/n"
"theDate: |%@| /n"
"theTime: |%@| /n"
, theDate, theTime);
[dateFormat release];
[timeFormat release];
[now release];
nada nuevo, pero aún quiero compartir mi método:
+(NSString*) getDateStringFromSrcFormat:(NSString *) srcFormat destFormat:(NSString *)
destFormat scrString:(NSString *) srcString
{
NSString *dateString = srcString;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//[dateFormatter setDateFormat:@"MM-dd-yyyy"];
[dateFormatter setDateFormat:srcFormat];
NSDate *date = [dateFormatter dateFromString:dateString];
// Convert date object into desired format
//[dateFormatter setDateFormat:@"yyyy-MM-dd"];
[dateFormatter setDateFormat:destFormat];
NSString *newDateString = [dateFormatter stringFromDate:date];
return newDateString;
}
puedes usar este método, simplemente pasa tu fecha a él
-(NSString *)getDateFromString:(NSString *)string
{
NSString * dateString = [NSString stringWithFormat: @"%@",string];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"your current date format"];
NSDate* myDate = [dateFormatter dateFromString:dateString];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"your desired format"];
NSString *stringFromDate = [formatter stringFromDate:myDate];
NSLog(@"%@", stringFromDate);
return stringFromDate;
}
Para veloz
var dateString:String = "2014-05-20";
var dateFmt = NSDateFormatter()
// the format you want
dateFmt.dateFormat = "yyyy-MM-dd"
var date1:NSDate = dateFmt.dateFromString(dateString)!;
NSDateFormatter *dateformat = [[NSDateFormatter alloc] init];
[dateformat setDateFormat:@"Your Date Format"];
establecer el formato para devolver es ....
yyyy-MM-dd
return 2015-12-17
date
yyyy-MMM-dd
regreso 2015-Dec-17
yy-MM-dd
return 15-12-17
date
dd-MM-yy
regresar fecha 17-12-15
dd-MM-yyyy
regresar fecha 17-12-2015
yyyy-MMM-dd HH:mm:ss
return 2015-Dec-17 08:07:13
fecha y hora
yyyy-MMM-dd HH:mm
return 2015-Dec-17 08:07
fecha y hora
Para obtener más detalles, datos y formato de tiempo para hacer clic ahora.
Gracias.....
NSDate *date = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"]
NSString *dateString = [df stringFromDate:date];
[df setDateFormat:@"hh:mm:ss"];
NSString *hoursString = [df stringFromDate:date];
Eso es todo, lo tienes todo lo que quieres.