¿Cómo obtengo el año actual como cuerda en Obj-C?iphone Obtiene el año actual como cadena
También, ¿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?
¿Cómo obtengo el año actual como cuerda en Obj-C?iphone Obtiene el año actual como cadena
También, ¿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?
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 mediante el método -isEqualToString:
.
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 el conjunto de componentes que desee mediante la operación de bits OR o los campos juntos (por ejemplo, NSYearCalendarUnit | NSMonthCalendarUnit) y utilizando components:fromDate
. Puede leer sobre esto en el Date and Time Programming Guide.
Con los componentes de calendario como tipos primitivos, las comparaciones son eficientes.
En Swift puede obtener sólo el año por el código dado
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy"
let dateStr = formatter.stringFromDate(NSDate())
print(dateStr)
Salida:
Swift
más fácil manera de obtener los elementos de fecha como Stri opcional ng.
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")
¿Funciona stringFromDate bien? Creo que dice que podría no responder al selector. ¿Hay alguna otra manera? – hmthur
Definitivamente funciona bien. '-stringFromDate:' es un método 'NSDateFormatter': http://developer.apple.com/library/ios/documentation/cocoa/reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/ instm/NSDateFormatter/stringFromDate: –
El formato de fecha debe ser @ "aaaa" (minúsculas). La mayúscula indica el año de la semana en la que está la fecha. Por lo tanto, para el 1 de enero de 2011, @ "YYYY" regresa en 2010. – Anna