2010-09-01 93 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