【发布时间】:2013-01-07 16:38:22
【问题描述】:
我写了如下方法:
- (NSDate *)stringToDate:(NSString *)dateString
{
// Convert string to date
NSDateFormatter * dateFormat = [[NSDateFormatter alloc] init];
NSTimeZone *tz = [NSTimeZone timeZoneWithName:@"America/New_York"];
[dateFormat setDateFormat:@"M/d/yyyy HH:mm:ss"];
[dateFormat setTimeZone:tz];
NSDate * date = [dateFormat dateFromString:[NSString stringWithFormat:@"%@ 00:00:00", dateString]];
return dateOnly;
}
当我只用 2013 年 11 月 1 日或 2013 年 11 月 13 日这样的日期调用它时,我得到 2013-11-01 04:00:00 +0000 和 2013-11-13 05:00:00 + 0000.
如果我在返回时设置断点,则日期显示正确,但如果我在此调用后在调用函数中中断,则返回日期和时间。
为什么我的时间不总是 0。无论如何能告诉我我的函数出了什么问题吗?
谢谢
更新:
输入字符串如下:11/1/2013 和 11/13/2013
【问题讨论】:
-
你能把你要转换的字符串放到你的问题中吗?
-
你的帖子有错误吗?您正在传递 2013-11-01 的日期字符串,但您的日期格式化程序是月/日/年......还是我错过了什么?
-
错字,抱歉,我更新了帖子
-
我制作了许多时钟和日历应用程序,vikingosegundo 的答案是正确的,您将始终拥有 UTC/GMT 时间。系统足够聪明,可以知道您的 00:00:00 表示您设置的任何日期的上午 12:00。所以不要挂在时间部分
-
是的,我明白他在说什么,但是,这没有意义,我调用了两次,一次是 2013 年 11 月 1 日,下一次是 2013 年 11 月 13 日,两次将小时、分钟和秒设置为 00:00:00,但结果不同。
标签: objective-c ios cocoa-touch nsdate