2010-12-07 24 views

Respuesta

125

Eche un vistazo a class reference for NSDateFormatter. Se utiliza de esta manera:

NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000"; 

// Convert string to date object 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
[dateFormat release]; 

Para obtener más información sobre la forma de personalizar que NSDateFormatter, intente this reference guide.

EDIT:

Para que lo sepas, esto va a analizar el nombre completo del mes. Si desea tres nombres de mes, use LLL en lugar de LLLL.

+6

Ese enlace de guía de referencia está muerto. – KClough

+0

@AppAspect Sé que esto es 800 años después, pero pruebe @ "LLLL d, HH: mm Z" O @ "MMM dd hh: mm a". Referencia: http://unicode.org/reports/tr35/tr35-10.html#Date_Field_Symbol_Table – migs647

+0

De acuerdo con esto: http://www.unicode.org/reports/tr35/ three L's te da 4 letras de los nombres de los meses, no 3 ... Pero parece que funciona de todos modos. Estaba cayendo antes, ahora no es ... Tal vez algo sobre el punto de ruptura que tuve allí antes. – shim

5

Si va a almacenar fechas en uno de los estilos de Ios, que es de error mucho más fácil y menos propenso a utilizar este método:

// Define a date formatter for storage, full style for more flexibility 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateStyle:NSDateFormatterFullStyle]; 
[dateFormatter setTimeStyle:NSDateFormatterFullStyle]; 

// Use today as an example 
NSDate *today = [NSDate date]; 
// Format to a string using predefined styles 
NSString *dateString = [dateFormatter stringFromDate:today]; 
// Format back to a date using the same styles 
NSDate *todayFromString = [dateFormatter dateFromString:dateString]; 
7
-(NSString *)dateToFormatedDate:(NSString *)dateStr { 
    NSString *finalDate = @"2014-10-15"; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd"]; 
    NSDate *date = [dateFormatter dateFromString:dateStr]; 
    [dateFormatter setDateFormat:@"EE, d MMM, YYYY"]; 
    return [dateFormatter stringFromDate:date]; 
} 
0
NSString *[email protected]"2017-05-25"; 

NSDateFormatter *dateFormatter=[NSDateFormatter alloc]init]; 

[dateFormatter setDateFormatter:@"MM-dd-yyyy"]; 

NSDate *date =[[NSDate alloc]init]; 

date=[datFormatter dateFromString:dateString]; 
+0

Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación. Recuerde que está respondiendo la pregunta para los lectores en el futuro, y esas personas podría no saber los motivos de su sugerencia de código. –

Cuestiones relacionadas