2010-04-22 78 views
0

我這是從XML提要通過了的NSString ........NSDateFormatter不正確轉換

NSString *strDate [email protected]"Thu, 22 Apr 2010 10.30 am CEST"; 
我目前使用此代碼格式化日期

..... ...

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh:mm a vvvv"]; 
    NSDate *myDate = [dateFormatter dateFromString:date]; 
    [dateFormatter setDateFormat:@"HH"]; 
    NSLog(@"%@", [dateFormatter stringFromDate:myDate]); 

我想格式化我的字符串只顯示小時,目前我得到像這樣的價值。

strDate [email protected]"2010-04-10 14:00:00 +0530"; 

任何人都可以請幫我嗎?......


我sorry.It的我mistake.It應該是這樣的。

NSString *strDate [email protected]"Thu, 22 Apr 2010 10:30 am CEST"; 

我的要求是使用NSDateFormatter只從上面的字符串獲得小時部分。我怎樣才能做到這一點。對不起,以前的錯誤。

謝謝。

回答

1

如果你想獲得的10:30的10(如果它的烏爾要求),那麼你可以不喜歡它:

strDate = @"Thu, 22 Apr 2010 10:30 am CEST"; 
NSArray *dateComponents = [strDate componentsSeparatedByString:@" "]; 
NSString *requiredString = [dateComponents objectAtIndex:4]; 
dateComponents = [requiredString componentsSeparatedByString:@":"]; 
requiredString = [dateComponents objectAtIndex:0]; 

當你這樣做:

NSLog(rquiredString); 

輸出: 10;

這只是一個解決方法,對於更好的方法,您應該通過NSDateComponents類。

希望這有助於。

感謝,

Madhup

0

你想這樣做:

NSString *strDate [email protected]"Thu, 22 Apr 2010 10:30 am CEST"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh:mm a"]; 
NSDate *myDate = [dateFormatter dateFromString:strDate]; 
[dateFormatter setDateFormat:@"hh"]; 
strDate = [dateFormatter stringFromDate:myDate]; 
NSLog(@"%@", strDate); 

(首先你原來的格式是錯誤的,你有一個:代替)編輯不再是這種情況

其次,你要忽略CEST位,因爲這會導致您的時區正在改變

+0

嗨, 我sorry.It的我mistake.It應該是這樣的。 NSString * strDate = @「Thu,22 Apr 2010 10:30 am CEST」; – 2010-04-22 10:29:42

+0

我的要求是使用NSDateFormatter僅從上面的字符串獲得小時部分。我怎樣才能做到這一點。對不起,以前的錯誤。 – 2010-04-22 10:40:07

+0

我的代碼能得到小時部分。你甚至嘗試過嗎? – pheelicks 2010-04-22 11:31:39

0

變化

[dateFormatter setDateFormat:@"EEE, dd MMM yyyy hh.mm a vvvv"]; 

(。而不是:在HH:MM)

+0

嗨, 對不起。這是我的錯。它應該是這樣的。 NSString * strDate = @「Thu,22 Apr 2010 10:30 am CEST」; – 2010-04-22 10:29:09

+0

我的要求是使用NSDateFormatter僅從上面的字符串獲取小時部分。我怎樣才能做到這一點。對不起,以前的錯誤。 – 2010-04-22 10:39:03