2013-02-24 58 views
1

在我的應用程序中,我得到一個NSString,日期爲01-22-12(MM-dd-yy)。現在我想將該字符串轉換爲NSDate。我使用下面的代碼。但它是給日期爲2012-01-04 05:00:00 +0000將MM-dd-yy格式的NSString轉換爲NSDate

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"MM-dd-yy"]; 
NSDate *dateFromString = [dateFormatter dateFromString:self.selectedWeek]; 

什麼是將我的字符串轉換爲NSDate的正確方法?

+0

您的問題不清楚。你想要什麼? – Ares 2013-02-24 06:24:38

+0

需要具有相同格式的nsdate值。 – 2013-02-24 06:26:37

回答

0

可以使用descriptionWithCalendarFormat:timeZone:locale:

NSString * mydate = [dateFromString descriptionWithCalendarFormat:@"%Y-%m-%d" 
           timezone:nil 
            locale:nil]; 
+0

但我需要在NSdate對象中的值。 – 2013-02-24 14:09:37

+0

dateFromString是你的轉換日期,所以這將返回你的NSDate對象 – 2013-02-24 15:04:12

+0

但你分配給nsstring。 – 2013-02-24 18:23:51

1

從你原來的問題,我不完全清楚是否要:

1的字符串作爲NSDate

2能夠得到原來的日期NSString背出一個NSDate實例。

你的代碼基本上是正確的。我只是跑的它稍微改編版本,這似乎很好地工作:

NSString *dateString = @"01-22-12"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"MM-dd-yy"]; 
NSDate *date = [dateFormatter dateFromString:dateString]; 
NSString *outString = [dateFormatter stringFromDate:date]; 

NSLog(@"%@",date); 
NSLog(@"%@",outString); 

這產生:

2013-02-24 09:57:24.352 datesAgain.m.out[787:707] 2012-01-22 00:00:00 +0000 
2013-02-24 09:57:24.352 datesAgain.m.out[787:707] 01-22-12 

所以,無論哪種方式,結果似乎是你所期待的。我懷疑你得到一個不正確的值的原因是self.selectedWeek沒有你認爲它的價值。我會檢查它,無論是在調試器或NSLog。如果您使用其他格式字符串在其他地方創建它,請注意它們可能會非常棘手,並且稍微不直觀 - 例如s表示秒,但S表示秒的小數部分。 可用的文檔here - 最新的Unicode格式標準here(ios6.0/OSX 10.8) - 也鏈接到以前的鏈接,因爲所有以前的相關標準

+0

我也需要日期值outstring格式意味着01-22-12.And我想發送該值作爲method.Iam參數使用該值編寫查詢從數據庫獲取值使用該日期。其中一個列數據類型是Date.I想要將此值傳遞給該字段。 – 2013-02-24 14:59:03

+0

O.K.所以答案是2.你需要弄清楚數據庫需要什麼格式的日期,產生一個格式的字符串並插入到查詢中。 '01-22-12'對你的數據庫是否正確?如果是這樣,上面的代碼應該工作 - 你可以插入'outString'。如果沒有,你可以創建第二個'NSDateFormatter',並使用鏈接到上面的資源以正確的格式生成日期字符串,將其設置爲格式字符串,並生成數據庫將接受的字符串 – 2013-02-24 20:38:42

+0

是的,我需要日期在01-22-12格式only.So如何插入那outstring。 – 2013-02-25 02:16:13