我正在尝试将日期从MMM dd,YYYY转换为YYYY-MM-dd。
NSDateFormatter *importDateFormat = [[NSDateFormatter alloc] init];
[importDateFormat setDateFormat:@"MMM dd, YYYY"];
NSDate *importedDate = [importDateFormat dateFromString:expiresOn.text];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd"];
NSString *dateImported = [dateFormat stringFromDate:importedDate];
从expiresOn.text(标签)引入的日期是: 2012年10月8日
转换后dateImported中包含的日期是: 2011-12-25
我错过了什么吗?我的日期格式化工具有问题吗?
答案 0 :(得分:3)
有两件事是错的,首先是yyyy
而不是YYYYY
,因为你要将月份解析成一个单词,你需要告诉日期格式化程序期望哪种语言。
NSDateFormatter *importDateFormat = [[NSDateFormatter alloc] init];
[importDateFormat setDateFormat:@"MMM dd, yyyy"];
importDateFormat.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en"] autorelease];
NSDate *importedDate = [importDateFormat dateFromString:expiresOn.text];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSString *dateImported = [dateFormat stringFromDate:importedDate];
如果您使用ARC,请删除NSLocale
中的自动释放部分;如果您不使用ARC,则需要发布NSDateFormatter
。