2012-01-17 70 views
1

我想搜索我的數組字典的特定date.Ex我想搜索我的字典數組日期"16 Jan 2012"這是字符串格式,但我的字典項目數組中包含日期和時間,說"16 Jan 2012 somehours:somemins:somesecs"。我轉換字符串格式日期爲NSDate格式,但我得到的日期爲2012-01-15 18:30:00 +0000,而不是2012-01-16。我正在使用NSPredicate搜索將日期轉換爲秒的日期,如下所示"Date == CAST(348345000.000000, "NSDate")"並進行比較,即使我的記錄包含日期爲"16 Jan 2012 somehours:somemins:somesecs"也不符合標準。我希望包含日期爲"16 Jan 2012 somehours:somemins:somesecs"的記錄/數組應滿足搜索標準。請問任何人都知道如何實現這一目標?如何將NSString轉換爲NSDate?

在此先感謝!

回答

0

要擺脫NSDateFormatter的自動調整您的時區使用這樣的東西。

dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; 

詳細說明; 「16 Jan 2012」不包含小時,分鐘或秒鐘值,所以當使用NSDateFormatter解析時,人們會期望一個描述爲「2012-01-16 00:00:00 +000」的NSDate但是,這不是你得到的,因爲日期格式化程序正在調整5:格林尼治標準時間和印度之間30小時?(假設根據:30差額)。通過顯式設置日期格式化程序的時區,可以避免此問題。

+0

感謝NJones,這解決了我的第一個問題。但是我仍然不是得到該怎麼做:我正在使用NSPredicate搜索將日期轉換爲秒的日期如下「Date == CAST(348345000.000000,」NSDate「)」並進行比較,即使我的記錄包含日期爲「2012年1月16日somehours:somemins:somesecs「它不符合標準。我希望包含日期爲」2012年1月16日somehours:somemins:somesecs「的記錄/數組應滿足搜索標準。請問任何人都知道如何實現這一目標? – 2012-01-18 08:05:08

0

您需要使用NSDateFormatters將日期字符串從一種格式轉換爲另一種格式。您可以在inputDateFormatter中使用dateFromString爲您提供一個NSDate,然後將其提供給outputDateFormatter,該outputDateFormatter會提供所需的字符串。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"dd MMM yyyy"]; 
NSString *dateInFormatYouWant = [dateFormatter stringFromDate:yourDate] 

我不確定是否有比這更有效的方法。

+0

我覺得OP有時區問題。 OP可以獲得日期,但轉換時間與時區有關。例如,如果你有時間16一月00:00,如果它與05:30的時區相減,那麼結果日期將是15一月,時間將是18:30 – 2012-01-17 13:25:20