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

时间:2011-01-14 09:29:20

标签: objective-c

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

另外,我如何使用另一年的值来比较它?

是否建议进行字符串比较或直接进行年度比较?

5 个答案:

答案 0 :(得分:106)

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:

答案 1 :(得分:34)

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

注意:除了NSGregorianCalendar之外,还有几个日历标识符。使用适合您的语言环境的任何内容。您可以通过按字段对字段进行按位OR运算(例如,NSYearCalendarUnit | NSMonthCalendarUnit)并使用components:fromDate来询问您想要的任何组件集。您可以在Date and Time Programming Guide

中阅读相关内容

将日历组件作为基本类型,比较是有效的。

答案 2 :(得分:2)

Swift 中,您只能通过给定代码获得年份

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

<强>输出:

2017

答案 3 :(得分:0)

<强>夫特

更容易将任何日期元素作为可选字符串。

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

答案 4 :(得分:0)

您可以通过遵循目标c中的代码来获得

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:[NSDate date]];
int year = [components year];
NSString *strFromyear = [NSString stringWithFormat:@"%d",year];