【发布时间】:2011-11-15 10:49:07
【问题描述】:
在将日期的 NSString 值转换为 NSDate 实例时遇到了奇怪的问题。看起来伟大的哈利波特访问了我的代码。
我从服务器接收日期字符串为 24 日期格式:“2011-11-15 11:44”。 我的 iPhone 在设置中有第 12 个日期格式。当我尝试将该字符串转换为 NSDate 时,我可以看到日期值等于 NIL。如果我将设置切换为 24 日期格式,它工作正常。这是我的代码:
NSString * sDate = @"2011-11-15 11:44";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd HH:mm"];
[df setTimeZone:[NSTimeZone localTimeZone]];
NSDate * pDate = [df dateFromString:sDate];
因此,pDate 为 NIL。但是,如果我在 iPod Touch 上运行此代码,我会看到 12 位格式的错误日期值,而不是 NIL。我无法理解一个问题。你能帮帮我吗?
谢谢。
【问题讨论】:
-
如果你注释行会发生什么 [df setTimeZone:[NSTimeZone localTimeZone]]; ?
-
我购买了特殊的魔法装备,并使用 NSCalendar 和 NSDateComponents 创建了日期。 :) 这是一个糟糕的技巧,但它有效。
标签: objective-c ios nsdate nsdateformatter