从月,日和年创建NSDate

时间:2013-12-11 12:51:03

标签: ios iphone objective-c nsdateformatter

我想从字符串创建一个NSDate变量,该日期来自第三方服务器,因此我无法更改它。日期格式为 2013年12月8日,我使用下面的日期格式化风格将其转换为日期,但这会为所有项目创建一个错误且固定的日期 2012- 12-22 19:00:00 +0000

请您指导我如何解决这个问题。我不想要破解字符串并使用NSDateComponents来创建日期。

[dateFormaterForSermonTemp setDateFormat:@"MMMM dd, YYYY"];

4 个答案:

答案 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];

试试这个......