我想这是一个非常基本的问题,但我似乎无法在我的任何书中找到答案。
假设我有一个日期,创建如下:
NSDate *today = [NSDate date];
但我想将“今天”的时间部分更改为“00:00:00”。我怎样才能做到这一点?
- - 添加 - -
我试过这个:
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:11];
[components setMonth:5];
[components setYear:2013];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *startDate = [calendar dateFromComponents:components];
NSLog(@"Current date: %@", startDate);
但是 NSLog 打印出这个:
Current date: 2013-05-11 04:00:00 +0000
我猜这与我的纽约时区有关?
- 回答 -
这是任何正在寻找它的人的答案。消除04:00:00
时间的技巧是将时区设置为 GMT:
[calendar setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
-- 修改后的答案 --
但是您可能实际上需要本地时间——例如,如果您需要按日期在核心数据中查找记录,并且存储的日期是本地时间——所以您可能不想将时区设置为 GMT,毕竟.