2010-07-30 64 views
0

嘿我有我的日期爲「7/30/2010」。我如何打印它只有月份和日期ie。 「7/30」 我嘗試使用NSFormatter,但它打印我當前的日期,而不是它存在於我的數據庫中。NSDateFormatter問題

回答

0
NSDate *date = dateFromYourDataBase; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"M/dd"]; 
NSLog(@"%@", [formatter stringFromDate:date]); 
[formatter release]; 
+0

-1。這將返回樣本輸入的'07/30'。 – 2010-07-30 11:03:30

+0

嘿它給了我警告:初始化形式不兼容的指針類型。這是因爲我的數據庫中的數據存儲爲文本? – user391301 2010-07-30 11:06:37

+0

<<樣品輸入將返回07/30 >> <<如何將其打印爲月份和日期>> 我的代碼打印月份和日期 2user391301:是的,您需要將您的NSString轉換爲NSDate first – jamapag 2010-07-30 11:43:55

0

您可以爲NSDate添加一些utility methods

下面是一個簡單標題:

@interface NSDate (Utilities) 

+ (NSDate *) customDateForString:(NSString *)dateString; 
+ (NSDateFormatter *) customDateFormatter; 

@end 

實施:

@implementation NSDate (Utilities) 

static NSDateFormatter *customDateFormatter = nil; 

+ (NSDateFormatter *) customDateFormatter { 
    // Example: 7/30 
    if (!customDateFormatter) { 
     customDateFormatter = [[NSDateFormatter alloc] init]; 
     [customDateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4]; 
     [customDateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; 

     // cf. http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns 
     [customDateFormatter setDateFormat:@"M/d"]; 
    } 
    return customDateFormatter; 
} 

+ (NSDate *) customDateForString:(NSString *)dateString { 
    return [[self customDateFormatter] dateFromString:dateString]; 
} 

@end 

每當你需要解析日期字符串,你會叫它像這樣:

NSLog(@"Parsed date: %@", [NSDate customDateForString:@"7/30/2010"]); // Parsed date: 7/30