iphone - 从iOS SDK中的日期获取日期

标签 iphone ios objective-c nsdateformatter

在我的应用中,要从日期获取日期(即SundayMonday等)。

我的代码如下:

NSDate *currentDate = [NSDate date];
    NSCalendar *calendar = [NSCalendar currentCalendar];

    //ask for current week
    NSDateComponents *comps = [[NSDateComponents alloc] init];
    comps=[calendar components:NSWeekCalendarUnit|NSYearCalendarUnit fromDate:currentDate];
    //create date on week start
    NSDate* weekstart=[calendar dateFromComponents:comps];

    //add 7 days
    NSMutableArray* week=[NSMutableArray arrayWithCapacity:7];
    for (int i=1; i<=7; i++) {
        NSDateComponents *compsToAdd = [[NSDateComponents alloc] init];
        compsToAdd.day=i;
        NSDate *nextDate = [calendar dateByAddingComponents:compsToAdd toDate:weekstart options:0];
        NSLog(@"%@",nextDate);  // date is 2013-06-30 18:30:00 +0000



        NSDateFormatter *myFormatter = [[NSDateFormatter alloc] init];
        [myFormatter setDateFormat:@"EEEE"]; // day, like "Saturday"
        //[myFormatter setDateFormat:@"c"]; // day number, like 7 for saturday

        NSString *dayOfWeek = [myFormatter stringFromDate:nextDate];

问题
        NSLog(@"Today is: %@", dayOfWeek);  // Prints Mondays instead of Sunday
    }

我该如何解决?

最佳答案

试试这个 :

    NSCalendar* calender = [NSCalendar currentCalendar];
    NSDateComponents* component = [calender components:NSWeekdayCalendarUnit fromDate:[NSDate date]];
    return [component weekday]; // 1 for Sunday, 2 for Monday, and so on...

并同时看到这个Day Name From NSDate?和这个https://discussions.apple.com/thread/1700102?start=0&tstart=0

编辑

尝试这个
NSString * time = @"2013-06-30T11:00:26+0100";

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *date1 = [df dateFromString:time];
long lgTime = (long)[date1 timeIntervalSince1970];
NSLog(@"%ld", lgTime);


NSCalendar* calender = [NSCalendar currentCalendar];
NSDateComponents* component = [calender components:NSWeekdayCalendarUnit fromDate:date1];

NSLog(@"date=%@ === %@",[NSDate date],date1);
NSLog(@"day= %d",[component weekday]); ///it return 1

关于iphone - 从iOS SDK中的日期获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17403761/

相关文章:

android - 如何实现设备存储卡(ios & android)支付应用程序?

ios - 使用 Phonegap 显示最近捕获的图像

iphone - 使用 UIColor RGB black 作为 NSMutableDictionary 中的键时出现问题

iOS网络应用程序: Use back swipe gesture to go back

ios - 如何通过使用 git 提交号作为 xcode 内部版本号来避免无限循环

iphone - 在 .plist 文件中写入下标

ios - 两个标签相邻,截断一个

objective-c - Xcode Interface Builder 设置按钮的突出显示图像

iphone - 以编程方式更改 UITextField 键盘类型

ios - 快速执行 BOOL Getter 上的 Exc_bad_access