簡體   English   中英

如何將NSString轉換為具有特定格式的NSDate

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM