0

我根据星期几更改文本值,我可以使用字符串值来实现这一点,但是我希望能够以数值代替 - 以消除不同语言的问题。例如,如果今天是星期一,做...但我想如果今天是第一天,那么做。我试过下面的代码,但它给了我一个数值 0;

    NSDateFormatter *dayofweekformatter = [[NSDateFormatter alloc] init];
[dayofweekformatter setDateFormat:@"E"];

NSString *DayOfWeek = [dayofweekformatter stringFromDate:[NSDate date]];
NSInteger weekDay = [DayOfWeek integerValue];
NSLog(@"The day of the week is: %d", weekDay);

是否有可能做到这一点?

4

2 回答 2

0

这是 Apple 论坛上提出的解决方案https://discussions.apple.com/thread/1700102?start=0&tstart=0(我不是作者)

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateComponents *weekdayComponents =[gregorian components:NSWeekdayCalendarUnit fromDate:dateOfInterest];

NSInteger weekday = [weekdayComponents weekday];
// weekday 1 = Sunday for Gregorian calendar

[gregorian release];
于 2013-10-10T13:24:04.097 回答
0

根据链接,“E”本身会以文本格式为您提供星期几,即:“Mon”/“Tue”等。

如果要将星期几作为整数,则应使用小写“e”或“c”。

一种不同的实现方式是使用NSCalendarNSDateComponents确定星期几,因为这更有可能根据用户偏好的日历考虑不同设备上的不同设置。

NSDate *date = [NSDate date];

NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *dateComponents = [calendar components:NSCalendarUnitWeekday fromDate:date];

NSLog(@"day of the week: %i", [dateComponents weekday]);
于 2013-10-10T13:18:27.150 回答