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:fromDate
来components: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")