我在使用自定义日期格式化程序NSDateFormatter
将字符串转换为日期时遇到问题。这是一个简短的示例,它从今天的日期创建一个字符串,但未能将其转换回NSDate
:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"Mdyyyy"];
NSString *example = [dateFormatter stringFromDate:now]; // e.g., 10292013
NSDate *reverse = [dateFormatter dateFromString:example]; // nil?
所以基本上它似乎NSDateFormatter
正在创建一个日期字符串,它本身无法NSDate
使用与创建字符串相同的格式返回。
使用MMddyyyy
日期字符串有效,尽管我无法从文档(方便地仅上升到 iOS 6.0)中看到它为什么重要:
month M 1..2 09 Month - Use one or two for the numerical month, ....
...
day d 1..2 1 Date - Day of the month
我之所以尝试使用Mdyyyy
而不是,MMddyyyy
是因为它更接近于NSDateFormatterShortStyle
我当前NSLocale
( M/d/yy
) 的返回值。
也许有人可能在这里有一些见解,因为我做错了什么,或者我对这应该如何工作的理解是错误的。(我知道这里有很多关于 的问题NSDateFormatter
,但我没有找到适合我的问题的问题。)