2010-09-01 86 views
1

我一直在寻找StackOverflow,还没有找到任何答案,如果我错过了一个帖子,回答这个问题,我很抱歉,并将感激的链接。将字符串转换为NSDate问题

我想改变一个字符串“prod.Start”到NSDate类型与今天的日期比较。下面的代码指明MyDate返回 “1753年1月1日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 

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

感谢

编辑:

现在工作:感谢所有帮助。 我认为是一个错误是12AM = 0点钟

我试图12PM和输出是“1753年1月1日12:00:00 -075258”

感谢您还解释了“ -075258“= PST对此很好奇。

+0

fwiw - -075258代表当前平均时间大约在1884年之前用于现在的太平洋时间... http://home.tiscali.nl/~t876506/TZworld.html#nam – 2010-09-01 01:30:02

回答

1

你在正确的轨道上。 NSDate比较函数只能使用该标准格式,所以这是正确的输出(尽管如果我的代码不起作用,请检查Max的解决方案)。现在,您需要与此相比,今天的日期是这样的...

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

这应该给你你在找什么。

+0

谢谢,在今天的日期之前/之后问一个比较还不存在? – Kevin 2010-09-01 03:16:25

0

您使用的是10.4格式的字符串,但默认的格式化程序行为是10.0格式。你确定你的格式化程序使用了正确的风格吗?您可以使用–setFormatterBehavior:或全球使用+setDefaultFormatterBehavior:更改它。

+0

我刚加入: [格式setFormatterBehavior:NSDateFormatterBehavior10_4]; 我尝试了默认格式,而不是10_4。 我仍然得到相同的输出,我仍然错过了什么? 谢谢。 – Kevin 2010-09-01 03:13:56