iphone以字符串形式获取当前年份

hmt*_*hur 39 objective-c

如何在Obj-C中将当前年份作为字符串?

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

是否可以进行字符串比较或直接进行年度比较?

Bjö*_*lek 109

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())
Run Code Online (Sandbox Code Playgroud)

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

  • 日期格式应为@"yyyy"(小写).大写字母表示日期所在的星期几.因此,对于2011年1月1日,@"YYYY"将返回2010年. (12认同)

小智 34

NSCalendar *gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
NSInteger year = [gregorian component:NSCalendarUnitYear fromDate:NSDate.date];
Run Code Online (Sandbox Code Playgroud)

注意:除了NSGregorianCalendar之外,还有几个日历标识符.使用适合您的语言环境的任何内容.您可以通过将字段按位OR'ing(例如,NSYearCalendarUnit | NSMonthCalendarUnit)并使用而来询问您想要的任何组件集components:fromDate.您可以在" 日期和时间编程指南"中阅读相关内容.

使用日历组件作为基本类型,比较是有效的.

  • @DTs我相信我们现在都可以承担ARC. (4认同)
  • 注意!calendarWithIdentifier:仅限iOS 8,因此是component:fromDate: (2认同)