【发布时间】:2013-05-08 22:37:39
【问题描述】:
我想这是一个非常基本的问题,但我似乎在我的任何书中都找不到答案。
假设我有一个日期,像这样创建:
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 ,毕竟。
【问题讨论】:
-
你需要的NSDateFormatter
-
我看不到如何使用 NSDateFormatter...
-
使用 NSCalendar。您可以将 NSDate 转换为组件,对其进行编辑,然后再将其转换回来。
标签: ios