iPhone获取当前的一年string

如何在Obj-C中获得当前string?

另外如何比较使用另一年的价值相同?

比较string比较或直接比较是可取的吗?

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()) 

您可以通过-isEqualToString:方法比较NSString

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

注意:除NSGregorianCalendar之外,还有几个日历标识符。 使用适合您的语言环境的任何内容。 您可以通过按位对字段进行OR运算(例如,NSYearCalendarUnit | NSMonthCalendarUnit)并使用components:fromDatecomponents:fromDate 。 您可以在date和时间编程指南中阅读 。

以日历组件作为基本types,比较是有效的。

Swift中 ,只能通过给定的代码获得一年

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

输出:

2017年

迅速

更简单的方法来获取date的任何元素作为一个可选的string。

 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")