Iphone NSDateFormatter模拟器上的日期不正确,设备上的日期正确
我正在做一个日历,想知道我这个月的第一天在做什么Iphone NSDateFormatter模拟器上的日期不正确,设备上的日期正确,iphone,objective-c,ios-simulator,nsdateformatter,Iphone,Objective C,Ios Simulator,Nsdateformatter,我正在做一个日历,想知道我这个月的第一天在做什么 [formatter setDateFormat:@"e"]; int startDay = [[formatter stringFromDate:newDate] intValue]; 在设备上,此功能正常工作,并且月1日的日期正确。但在模拟器上,这是第二天。虽然模拟器并不重要,但它让我疯狂地认为我做错了什么。我试图设置格式化程序的区域设置,但没有区别,我认为也不应该设置。有人能解释一下吗 另一方面,有没有比这更好的方法来构建日历 更新:似乎
[formatter setDateFormat:@"e"];
int startDay = [[formatter stringFromDate:newDate] intValue];
在设备上,此功能正常工作,并且月1日的日期正确。但在模拟器上,这是第二天。虽然模拟器并不重要,但它让我疯狂地认为我做错了什么。我试图设置格式化程序的区域设置,但没有区别,我认为也不应该设置。有人能解释一下吗
另一方面,有没有比这更好的方法来构建日历
更新:似乎如果我不设置区域设置,它在设备上可以正常工作,但在模拟器上却不行。如果我真的将区域设置为en_我们两个都不工作。如果这有什么变化的话,我就在奥斯汀,但我敢肯定美国和奥斯汀都有相同的日历://这听起来像是正确的行为,取决于你经过的日期。NSDate对应于世界时间的精确点。到那时,一个时区可能是星期一,另一个时区可能是星期二
您可能希望
[[NSCalendar currentCalendar]firstWeekDay]
似乎没有解决方案。更改设备上的时区不会导致问题,所有日志输出都会报告正确的时区,但NSDate似乎会从模拟器上的两个不同位置提取时区,可能一个用于Cupertino,另一个用于local
看看其他人获得每月第一天的解决方案,它与我的代码相同(奇怪,因为我没有复制),并且没有人报告问题,也许那些用户在美国,所以问题没有出现。更改计算机上的时区也没有任何作用。如果模拟器和设备上有不同的日历怎么办?一个星期一是第一个工作日,另一个星期天。这可能是问题的原因…可能是重复的…。不,这是一个格式问题,我的设备与模拟器相比存在时区差异问题,尽管我只是传递了一个没有时间的日期。嗯,我以为iPhone上没有NSCalendar,但现在我查看了它。我来看看[[NSCalendar currentCalendar]firstWeekDay]返回一周的第一天,即周一。你也可以将它设置为星期天。不管怎样,它每个月只返回1。仍在调查通过日期。我没有设置一个时间或时区,只是一个日期,所以不确定到底发生了什么。手机从电脑同步它的日期,而且我从来没有遇到过手机其他部分的问题,比如说日历。