Как получить текущий год как строку в Obj-C?
Также как мне сравнить то же самое с использованием значения другого года?
Желательно ли проводить сравнение строк или сопоставление год за годом?
Как получить текущий год как строку в Obj-C?
Также как мне сравнить то же самое с использованием значения другого года?
Желательно ли проводить сравнение строк или сопоставление год за годом?
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())
Вы можете сравнить NSString
с помощью метода -isEqualToString:
.
NSCalendar *gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
NSInteger year = [gregorian component:NSCalendarUnitYear fromDate:NSDate.date];
Примечание. Есть несколько идентификаторов календаря, кроме NSGregorianCalendar. Используйте все, что подходит для вашей локали. Вы можете запросить любой набор компонентов, которые вы хотите поразрядным OR'ing полей вместе (например, NSYearCalendarUnit | NSMonthCalendarUnit) и вместо этого использовать components:fromDate
. Вы можете прочитать об этом в Руководство по программированию даты и времени.
С компонентами календаря как примитивными типами сравнения эффективны.
В Swift вы можете получить только год по заданному коду
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy"
let dateStr = formatter.stringFromDate(NSDate())
print(dateStr)
Вывод:
2017
Swift
Более простой способ получить любые элементы даты в качестве необязательной строки.
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")