[英]How to convert NSString to NSDate with specific format
很抱歉,以前是否有人問過這個問題,但我做了很多檢查,但似乎找不到答案。 :(
我有一個字符串“ 2013-05-7 05:53:15 +0000”,我想將其轉換為NSDate,以便可以將其與當前日期和時間進行比較。 我不知道該怎么做。 :(我成功地轉換了它,但是它改變了字符串的外觀,我希望它與2013-05-7 05:53:15 +0000完全一樣,因為這與我其他NSDate項的格式相同。
任何幫助都將不勝感激。
我很困惑。 ;)目標C的新手。80年代的老VB /老C程序員試圖弄清楚這些東西。 謝謝您的幫助。 :)
我的代碼如下所示:
NSDateFormatter *df1 = [[NSDateFormatter alloc] init];
// [df1 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
[df1 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
df1.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"EN"];
NSDate *titemdate1 = [df1 dateFromString: itemdate];
我只有兩個約會。 一個是應用運行的最后日期,另一個是我使用JSON提取的商品的日期。 我想比較兩個日期(如上所述,它們是字符串格式)。 當我對字符串進行NSLog時,它們看起來很完美,但是當我轉換為NSDate進行比較時,我遇到了問題。 有任何想法嗎?
嘗試使用下面的代碼。
-(NSDate*)dateFromJsonString:(NSString*)string
{
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"];
NSDate *xExpDate = [inputFormatter dateFromString:string];
return xExpDate;
}
首先,您應該知道,如果將dateString轉換為date並執行date的NSLog,它將返回GMT時間,在大多數情況下,該時間將不同於系統時間。 因此,如果您以正確的格式獲取字符串,則日期格式化程序可能工作正常。 要檢查這一點,只需將格式化日期轉換為字符串並打印輸出即可。
NSLog(@"formatted date: %@",[df1 stringFromDate:titemdate1]);
如果那沒有改變任何東西並且輸出仍然是錯誤的,請嘗試更改格式化程序的格式。
[df1 setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.