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:
.