这是我的代码。为什么NSDate报告错误的日期?
NSDate *today = [NSDate date];
NSString *todayString = [[today description] substringToIndex:10];
NSLog(@"Today: %@", todayString);
我得到2011-07-19而不是2011-07-18。任何想法可能是什么问题?
这是我的代码。为什么NSDate报告错误的日期?
NSDate *today = [NSDate date];
NSString *todayString = [[today description] substringToIndex:10];
NSLog(@"Today: %@", todayString);
我得到2011-07-19而不是2011-07-18。任何想法可能是什么问题?
NSDate的description
方法以UTC为单位返回时间,如果您在夏令时期间在美国东部时区,则比您的挂钟时间晚4个小时。换句话说,您的时间晚上10点是UTC的第二天凌晨2点。
修复此问题的常用方法是改用NSDateFormatter,并在必要时明确设置时区。
为我修好了。谢谢。 – David
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease];
[dateFormat setDateFormat:@"dd-MM-yyyy"];
NSString *dateString = [dateFormat stringFromDate:today];
谢谢,这正是我所做的。 – David
什么是您所在的时区以及您获取日期的设备的时区是什么? –
也会验证操作系统中服务器的实际系统时间。 – Randy
我的时区设置为东部时区。我Mac上的当前日期是“2011年7月18日星期一”。另外,我正在模拟器中运行我的应用程序。 – David