reloj posicion obtener fechas fecha como cambiar año actual iphone datetime date nsdate nsdateformatter

iphone - posicion - fechas swift



¿Cómo obtener NSDate día, mes y año en formato entero? (9)

Ponlo en una extensión y vive tu vida 🍸🏖

extension Date{ var day:Int {return Calendar.current.component(.day, from:self)} var month:Int {return Calendar.current.component(.month, from:self)} var year:Int {return Calendar.current.component(.year, from:self)} } Date().day//22 Date().month//4 Date().year//2017

Swift 3.0 (Es una iteración de respuestas anteriores, pero lo resuelve para todos sus futuros proyectos de aplicaciones)

Quiero obtener los componentes de día, mes y año de NSDate en forma de entero, es decir, si la fecha es 1/2/1988, entonces debería obtener 1, 2 y 1988 por separado como un entero. ¿Cómo puedo hacer esto en iOS? Encontré la pregunta similar, pero el método descriptionWithCalendarFormat : da una advertencia y parece que ya está en desuso.


Aquí estás,

NSDate *currentDate = [NSDate date]; NSCalendar* calendar = [NSCalendar currentCalendar]; NSDateComponents* components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:currentDate]; // Get necessary date components [components month]; //gives you month [components day]; //gives you day [components year]; // gives you year

Puede usar NSDateComponents para eso como se indicó anteriormente.

Por favor visite esta página para más detalles.

Espero eso ayude.


Para aquellos que solo copian y pegan directamente de la web, como yo, esta es una pequeña actualización para iOS 8

NSCalendar* calendar = [NSCalendar currentCalendar]; NSDateComponents* components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:[NSDate date]]; [components day]; //Day [components month];//Month [components year];//Year

La diferencia es NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit | NSWeekdayCalendarUnit NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit | NSWeekdayCalendarUnit NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit | NSWeekdayCalendarUnit ha quedado en desuso


Puede usar NSDateComponents para obtener esto,

NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar]; NSDate *currDate = [NSDate date]; NSDateComponents *dComp = [calendar components:( NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit ) fromDate:currDate]; int day = [dComp day]; int month = [dComp month]; int year = [dComp year];


Rápido

let components = NSCalendar.currentCalendar().components([.Day, .Month, .Year], fromDate: self) let day = components.day let month = components.month let year = components.year

Para su comodidad, puede poner esto en una extensión NSDate y hacer que devuelva una tupla:

extension NSDate: Comparable { var dayMonthYear: (Int, Int, Int) { let components = NSCalendar.currentCalendar().components([.Day, .Month, .Year], fromDate: self) return (components.day, components.month, components.year) } }

Ahora solo tiene que escribir:

let (day, month, year) = date.dayMonthYear

Si quisieras, por ejemplo, obtener solo el año en que puedes escribir:

let (_, _, year) = date.dayMonthYear


Sí, gracias al uso de NSCalendar, creo que esto hará su trabajo.

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]]; NSInteger day = [components day]; NSInteger month = [components month]; NSInteger year = [components year];


U puede probar esto .......

Mycal = [NSCalendar currentCalendar]; today = [NSDate date]; compA =[Mycal components:(NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit | NSWeekdayCalendarUnit) fromDate:today]; FirstDateofMonth=[today dateByAddingTimeInterval:([compA day]-1)*(-24*60*60)]; compA =[Mycal components:(NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit | NSWeekdayCalendarUnit) fromDate:FirstDateofMonth]; today = FirstDateofMonth; compA = [Mycal components:(NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit | NSWeekdayCalendarUnit) fromDate:today]; [compA setMonth:([compA month])]; [self DrawMonthInPortraitView]; [compA retain];


NSDate *currentDate = [NSDate date]; NSCalendar* calendar = [NSCalendar currentCalendar]; NSDateComponents* components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:currentDate]; // Get necessary date components [components month]; //gives you month [components day]; //gives you day [components year]; // gives you year NSString *temp=[NSString stringWithFormat:@"Months:%d Day:%d Year:%d",[components month], [components day],[components year]]; NSLog(@"%@",temp);


let date = Date() let calendar = Calendar.current let year = calendar.component(.year, from: date) let month = calendar.component(.month, from: date) let day = calendar.component(.day, from: date) print("hours = /(year):/(month):/(day)")