[英]Obj-C - Get NSDate month component in word vs int?
我使用下面的代碼來獲取我的 NSDate 的組件,它返回以下數據:
"<NSDateComponents: 0x282564be0> {\n Calendar Year: 2020\n Month: 10\n Leap Month: 0\n Day: 1",
"<NSDateComponents: 0x282561120> {\n Calendar Year: 2020\n Month: 10\n Leap Month: 0\n Day: 2",
"<NSDateComponents: 0x282561180> {\n Calendar Year: 2020\n Month: 10\n Leap Month: 0\n Day: 3",
"<NSDateComponents: 0x2825611a0> {\n Calendar Year: 2020\n Month: 10\n Leap Month: 0\n Day: 4",
"<NSDateComponents: 0x282564bd0> {\n Calendar Year: 2020\n Month: 10\n Leap Month: 0\n Day: 5",
"<NSDateComponents: 0x282561310> {\n Calendar Year: 2020\n Month: 10\n Leap Month: 0\n Day: 6",
"<NSDateComponents: 0x282561530> {\n Calendar Year: 2020\n Month: 10\n Leap Month: 0\n Day: 7"
是否可以將“月份”對象作為三個字母的月份而不是實際月份數返回? 例如。 將十月返回為“十月”而不是 10? 我可以將 dateformatter 放在返回到我的數組的日期上,但我不確定如何將其應用於組件?
視圖控制器.m
NSDate *today = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSCalendar *calendar = [NSCalendar currentCalendar];
dateFormatter.dateFormat = @"ddMMM";
for (UInt16 i = 0; i < 7; i++) {
NSDate *nextDate = [calendar dateByAddingUnit:NSCalendarUnitDay value:i toDate:today options: 0];
[_weekdates addObject:[dateFormatter stringFromDate: nextDate]];
NSDateComponents* components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:nextDate]; // Get necessary date components
[components month];
NSLog(@"%@", components);
}
[dateFormatter shortMonthSymbols]
這將返回短月份的數組,如Jan,Feb,Mar....
使用它你會得到月份的三個字母。
NSLog(@"%@", [dateFormatter shortMonthSymbols][components.month-1]);
[components.month]
返回從 1 到 12 的月份數。
- (NSString *)getMonthFromDate:(NSDate *)date {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDateComponents* components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:date];
NSString *strMonthName = [dateFormatter shortMonthSymbols][components.month-1];
NSLog(@"%@", strMonthName);
return strMonthName;
}
一個帶有月份值並按月份數訪問它的簡單數組將起作用。
months = [NSArray arrayWithObjects: @"Jan", @"Feb", nil];
[months objectAtIndex: i]=> i=0=> "Jan"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.