我想从日期获得一个Nsstring,日期格式如下:
MMEEEY ww
问题是’ww’,一年中的一周.我必须将这种格式与后一种格式进行比较.但是后台的第一个工作日是星期一,而iOS是星期天.因此,当它是星期天时,字符串不一样,因为一年中的星期不一样.
问题是:
如何强制NSDateFormatter在星期一作为第一个工作日使用?
我尝试使用firstWeekday属性设置为2的日历设置NSDateFormatter的日历属性,但它不起作用.
这个要点:
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; calendar.firstWeekday = 2; NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.calendar = calendar;
编辑:诺亚答案后的测试
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; NSLocale * locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en"]; dateFormatter.locale = locale; dateFormatter.dateFormat = @"MMEEEY ww"; NSDate * date = [NSDate dateWithTimeIntervalSince1970:1330251642]; // next sunday NSLog(@"%@ -> %@",date,[dateFormatter stringFromDate:date]); NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; calendar.firstWeekday = 2; dateFormatter.calendar = calendar; NSLog(@"%@ -> %@",[dateFormatter stringFromDate:date]);
结果:
2012-02-24 11:31:27.878 Test[2546:15203] 2012-02-26 10:20:42 +0000 -> 02Sun2012 09 2012-02-24 11:31:27.880 Test[2546:15203] 2012-02-26 10:20:42 +0000 -> 02Sun2012 09
解决方法
根据一些测试,日期格式化程序似乎确实遵守日历设置.也许您可以举例说明您要格式化的日期,您想要的结果以及您获得的结果.
NSDateFormatter * df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"MMEEEY ww"]; NSDate *date; date = [NSDate dateWithString:@"2012-01-01 12:00:00 +0000"]; NSLog(@"%@ -> %@",[df stringFromDate:date]); date = [NSDate dateWithString:@"2012-01-02 12:00:00 +0000"]; NSLog(@"%@ -> %@",[df stringFromDate:date]); NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; calendar.firstWeekday = 2; df.calendar = calendar; date = [NSDate dateWithString:@"2012-01-01 12:00:00 +0000"]; NSLog(@"%@ -> %@",[df stringFromDate:date]);
结果:
2012-02-22 12:42:17.020 test[68385:207] 2012-01-01 12:00:00 +0000 -> 01Sun2012 01 2012-02-22 12:42:17.021 test[68385:207] 2012-01-02 12:00:00 +0000 -> 01Mon2012 01 2012-02-22 12:42:17.022 test[68385:207] 2012-01-01 12:00:00 +0000 -> 01Sun2011 52 2012-02-22 12:42:17.022 test[68385:207] 2012-01-02 12:00:00 +0000 -> 01Mon2012 01
我不确定你是否想要2011年第52周的1/1/12部分,但是再次,这就是我要问你想要什么结果的原因.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。