【发布时间】:2013-09-06 17:32:13
【问题描述】:
我对这些代码行有一个奇怪的问题:
NSDateFormatter * df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMyyyy"];
NSDate * date = [df dateFromString:@"062008"];
NSLog(@"Date %@", date);
结果是:
Date (null)
但是当我这样更改月份时:
NSDateFormatter * df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMyyyy"];
NSDate * date = [df dateFromString:@"072008"];
NSLog(@"Date %@", date);
结果是:
Date 2008-06-30 23:00:00 +0000
仅六月 (06) 月份,从字符串转换日期失败!
我认为,这与时区有关,任何想法。
谢谢
解决了:
[df setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
正如我所想,它与时区有关。
【问题讨论】:
-
写下你自己的答案,然后点击它回答——它会给你加分,让其他关注的人更清楚。
-
在您的回答中,您可以更详细地解释:它与时区有什么关系?好的,将时区更改为 GMT “修复”了它,但它真的修复了吗?出了什么问题?如果这真的是一种修复,而不仅仅是绷带,那么它是如何解决问题的呢?
-
顺便问一下:你在哪个时区?当我运行该代码时,显然当 hussain Shabbir(来自答案)运行它时,我们都得到了
@"062008"的日期。你没有,那么你的格式化程序使用什么时区和日历?如果您将其保留为默认值,您的系统设置为哪个时区和日历? -
我的时区是:非洲/卡萨布兰卡
-
感谢 Hot Licks 的提议,非常好
标签: cocoa nsdate nsdateformatter