以下代码:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"yyyy-MM-dd";
NSDate *tempDate = [dF2 dateFromString:@"2011-07-10"];
DebugLog(@"Temp Date %@", tempDate);
结果如下:
临时日期2011-07-10 05:00:00 +0000
我不明白05:00:00来自哪里?我在中央时区使用此代码,这是-5格林尼治标准时间,这是我能想到的唯一连接到日期设置的时间。我期待00:00:00。
投入赞赏。
答案 0 :(得分:3)
创建NSDate 07-10-2011时,NSDataFormatter默认为当前时区。在你的例子中是GMT-5。
还要记住,调试器将以UTC / GMT + 0显示NSDate;
如果您想创建UTC午夜:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"yyyy-MM-dd";
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *tempDate = [dateFormatter dateFromString:@"2011-07-10"];
NSLog(@"Temp Date %@", tempDate);