iphone Получить текущий год в виде строки - PullRequest
39 голосов
/ 14 января 2011

Как получить текущий год в виде строки в Obj-C?

Кроме того, как сравнить то же самое, используя значение другого года?

Желательно ли проводить сравнение строк ИЛИ непосредственномежгодовое сравнение?

Ответы [ 4 ]

108 голосов
/ 14 января 2011
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:.

34 голосов
/ 25 марта 2011
NSCalendar *gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
NSInteger year = [gregorian component:NSCalendarUnitYear fromDate:NSDate.date];

Примечание: кроме NSGregorianCalendar есть несколько идентификаторов календаря. Используйте все, что подходит для вашей страны. Вы можете запросить любой набор компонентов, который вам нужен, поразрядно ИЛИ объединяя поля (например, NSYearCalendarUnit | NSMonthCalendarUnit) и используя вместо этого components:fromDate. Вы можете прочитать об этом в Руководство по программированию даты и времени .

С компонентами календаря в качестве примитивных типов сравнения эффективны.

2 голосов
/ 28 августа 2016

В Swift вы можете получить только год по данному коду

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

Выход:

2017

0 голосов
/ 10 июля 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...