将String转换为NSDate问题

时间:2010-09-01 00:22:01

标签: iphone string nsdate nsdateformatter

我一直在查看StackOverflow并且还没有找到任何答案,如果我错过了一个回答这个问题的帖子我很抱歉并且会对链接感激不尽。

我正在尝试将字符串“prod.Start”更改为NSDate类型,以便与今天的日期进行比较。以下代码myDate返回“1753-01-01 00:00:00 -075258”

CODE:

NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setFormatterBehavior:NSDateFormatterBehavior10_4];
[format setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *myDate = [format dateFromString: prod.Start];  //prod.Start = 1/1/1753 12:00:00 AM

任何建议/提示都将不胜感激。

由于

编辑:

立即行动:感谢所有帮助。 我认为错误是在上午12点=上午0点

我试过12PM,输出是“1753-01-01 12:00:00 -075258”

感谢您解释“-075258”= PST对此感到好奇。

2 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。 NSDate比较函数仅适用于该标准格式,因此这是正确的输出(但如果我的代码不起作用,请检查Max的解决方案)。你现在需要将它与今天的日期进行比较......

NSDate *todaysDate = [NSDate date];
BOOL isToday = [todaysDate isEqualToDate:myDate];

这应该可以为您提供所需的信息。

答案 1 :(得分:0)

您使用的是10.4样式的格式字符串,但默认的格式化程序行为是10.0样式。您确定格式化程序使用的是正确的样式吗?您可以使用–setFormatterBehavior:进行更改,也可以使用+setDefaultFormatterBehavior:进行全局更改。