我想从字符串创建一个NSDate变量,该日期来自第三方服务器,因此我无法更改它。日期格式为 2013年12月8日,我使用下面的日期格式化风格将其转换为日期,但这会为所有项目创建一个错误且固定的日期 2012- 12-22 19:00:00 +0000
请您指导我如何解决这个问题。我不想要破解字符串并使用NSDateComponents来创建日期。
[dateFormaterForSermonTemp setDateFormat:@"MMMM dd, YYYY"];
答案 0 :(得分:5)
您可以使用以下代码:
NSString *stringDate = @"December 08, 2013";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM dd, yyyy"];
NSDate *date = [dateFormat dateFromString:stringDate];
// Convert date object to desired output format
[dateFormat setDateFormat:@"MMMM dd, yyyy"];
stringDate = [dateFormat stringFromDate:date];
NSLog(@"%@", stringDate);
stringDate
是您服务器中的字符串,您将其转换为NSDate
并为日期添加新格式,如@"MMMM dd, yyyy"
。
(在这里,您将获得相同的结果,但更改格式如@"MMMM-dd-yyyy EEE"
,以获得另一种格式日期。)
编辑:
也许您需要为您的日期设置timeZome
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0:00"]];
答案 1 :(得分:0)
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM dd, yyyy"];
NSDate *date = [dateFormat dateFromString:@"December 08, 2013"];
答案 2 :(得分:0)
这里有documentation about date format string。 (杆不是鱼)。
因此,日期 2013年12月8日的格式字符串应该类似于(鱼):
@"MMMM dd, y"
并且不要忘记为日期格式化程序设置正确的区域设置,否则在具有不同区域设置的设备上可能会出现意外问题。
答案 3 :(得分:0)
NSString *strDate=@"December 08, 2013";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
NSDate *date=[dateFormatter dateFromString:strDate];
试试这个......