2014-05-08 74 views
0

我有一個NSString是05/08/2014。我想將其轉換爲NSDate。不過,我也需要及時補充,因此所得到的NSDate是這樣的:轉換NSString到NSDate,添加時間

Thu, 8 May 2014 00:00:00 -0500 

的時間並不重要,我只需要在指定的時區顯示午夜。

我曾嘗試:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

     [dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss zzz"]; 
     NSDate *dateFromString = [[NSDate alloc] init]; 
     dateFromString = [dateFormatter dateFromString:textdate.text]; 
     [dateFormatter release]; 
     NSLog(@"%@", dateFromString); 

但日回來爲(空)。

+0

您爲dateformatter設置的格式與您告訴它解析的日期格式不匹配。 – Logan

+0

@Logan那麼,採取字符串05/08/2014並將其轉換爲NSDateFormatter格式的好方法是什麼? – user717452

+0

「MM/dd/y」 - (後綴限制的更多字符) – Logan

回答

1

您的日期格式是錯誤的第一次轉換。您需要的是首先從一個格式將字符串轉換爲日期,並將新日期轉換爲新的字符串格式。類似這樣的:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"MM/dd/yyyy"]; //convert the string into date (american time zone) 
    NSDate *theDate = [formatter dateFromString:textdate.text]; 
    [formatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss ZZZ"];// as @Logan suggested 
    NSString *newDate = [formatter stringFromDate:theDate]; 
+1

他應該是「MM/dd/yyyy」他使用的是美式日期風格。 – Logan

+0

@Logan是的你是對的。編輯我的答案。 – danypata

+0

對您發佈的代碼進行了一些編輯,並且它可以正常工作。 – user717452

0

EEE,d MMM YYYY HH:MM:SS ZZZ

您的時區代碼被小寫代替大寫。

ZZZ對應於PDT

ZZZ對應-0500

UTS 35

+0

這不會以MM/dd/yyyy格式讀取日期。 –

+0

我同意在2014年5月8日星期四00:00:00 -0500'格式中讀取或寫入日期。 – ColdLogic