versiones ventajas que programado plataforma objective lenguaje hecho esta entre diferencia con objective-c

objective c - ventajas - iphone Obtenga el año actual como una cadena



ventajas de objective c (4)

En Swift puedes obtener solo el año por código dado

let formatter = NSDateFormatter() formatter.dateFormat = "yyyy" let dateStr = formatter.stringFromDate(NSDate()) print(dateStr)

Salida:

2017

¿Cómo obtengo el año actual como una cadena en Obj-C?

Además, ¿cómo puedo comparar el mismo usando otro valor de año?

¿Es aconsejable hacer una comparación de cadenas o una comparación directa de un año a otro?


Rápido

Forma más fácil de obtener cualquier elemento de fecha como una cadena opcional.

extension Date { // Year var currentYear: String? { return getDateComponent(dateFormat: "yy") //return getDateComponent(dateFormat: "yyyy") } func getDateComponent(dateFormat: String) -> String? { let format = DateFormatter() format.dateFormat = dateFormat return format.string(from: self) } } print("-- /(Date().currentYear)") // result -- Optional("2017")


NSCalendar *gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian]; NSInteger year = [gregorian component:NSCalendarUnitYear fromDate:NSDate.date];

Nota: hay varios identificadores de calendario además de NSGregorianCalendar. Use lo que sea apropiado para su localidad. Puede solicitar cualquier conjunto de componentes que desee por bit OR o por los campos juntos (por ejemplo, NSYearCalendarUnit | NSMonthCalendarUnit) y el uso de components:fromDate en components:fromDate lugar. Puede leer sobre esto en la Guía de programación de fecha y hora .

Con los componentes de calendario como tipos primitivos, las comparaciones son eficientes.


NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy"]; NSString *yearString = [formatter stringFromDate:[NSDate date]]; // Swift let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy" let year = dateFormatter.string(from: Date())

Puede comparar NSString s a través del método -isEqualToString: .