iphone – NSDateFormatter:一年中的一周和第一个工作日

iphone – NSDateFormatter:一年中的一周和第一个工作日,第1张

概述我想从日期获得一个NSString,日期格式如下: MMEEEY ww 问题是’ww’,一年中的一周.我必须将这种格式与后一种格式进行比较.但是后台的第一个工作日是星期一,而iOS是星期天.因此,当它是星期天时,字符串不一样,因为一年中的星期不一样. 问题是: 如何强制NSDateFormatter在星期一作为第一个工作日使用? 我尝试使用firstWeekday属性设置为2的日历设置NSDate 我想从日期获得一个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 sundayNSLog(@"%@ -> %@",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 092012-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 012012-02-22 12:42:17.021 test[68385:207] 2012-01-02 12:00:00 +0000 -> 01Mon2012 012012-02-22 12:42:17.022 test[68385:207] 2012-01-01 12:00:00 +0000 -> 01Sun2011 522012-02-22 12:42:17.022 test[68385:207] 2012-01-02 12:00:00 +0000 -> 01Mon2012 01

我不确定你是否想要2011年第52周的1/1/12部分,但是再次,这就是我要问你想要什么结果的原因.

总结

以上是内存溢出为你收集整理的iphone – NSDateFormatter:一年中的一周和第一个工作日全部内容,希望文章能够帮你解决iphone – NSDateFormatter:一年中的一周和第一个工作日所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1071727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存