2

可能重复:
如何在 Objective-C 中获取星期几?

我有一个连接到 nsstring 的 uilabel。但是,我正在尝试将 nsstring 设置为星期几(星期一、星期二等)。但每次我运行它时,它什么也没给我。我有一种感觉,这是因为我没有从我的 nsdate 中获得价值。但是,我是 xcode 的新手,所以我真的不知道我做错了什么。

-(void)viewDidLoad {
     NSDate *today = [[NSDate alloc] init];
        NSCalendar *gregorian = [[NSCalendar alloc]
                                 initWithCalendarIdentifier:NSGregorianCalendar];

        // Get the weekday component of the current date
        NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit
                                                           fromDate:today];

       NSString *dateString = weekdayComponents;
        _label.text = dateString;
}
4

2 回答 2

1

试试这个代码:

-(void)viewDidLoad {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
    [formatter setDateFormat:@"EEEE"];
    _label.text = [formatter stringFromDate:[NSDate date]];
}
于 2012-11-20T03:49:11.137 回答
0

一个主要问题是您试图将NSDateComponents对象分配给NSString变量。

@JShapiro 给出的答案很好。但是如果你想使用NSDateComponents你可以这样做:

NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
NSInteger weekday = [weekdayComponents weekday];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSArray *weekdayNames = [formatter weekdaySymbols];

_label.text = weekdayNames[weekday];
于 2012-11-20T03:56:17.130 回答