2010-02-22 5 views

답변

184
NSString *dateStr = @"20100223"; 

// Convert string to date object 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyyMMdd"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 

// Convert date object to desired output format 
[dateFormat setDateFormat:@"EEEE MMMM d, YYYY"]; 
dateStr = [dateFormat stringFromDate:date]; 
[dateFormat release]; 

희망이 도움이 될 것입니다.

+14

여기에 모든 형식 값을 설명하는 기사가 있습니다. http://www.alexcurylo.com/blog/2009/01/29/nsdateformatter-formatting/ – mtmurdock

+0

또한 unicode.org의 목록에 유의하십시오. http : // www.unicode.org/reports/tr35/tr35-19.html#Date_Format_Patterns –

+0

작은 글자 yyyy와 dd가 작동하고 대문자 MM이 작동하는 이유를 알고 있습니까? –

8

NSDateFormatter을보고 싶을 것입니다. 날짜 문자열의 형식을 확인한 다음 dateFromString:을 사용하여 문자열을 NSDate 개체로 변환합니다.

4
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"dd/MM/YYYY"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
list = [self getYear:date]; 


- (NSMutableArray *)getYear:(NSDate*)date 
{ 
    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:date]; 

    int year = [components year]; 
    int month = [components month]; 
    int day = [components day]; 
    NSLog(@"%d",year); 

    NSMutableDictionary *dateDict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[NSString stringWithFormat:@"%d", day], @"day", [NSString stringWithFormat:@"%d", month], @"month", [NSString stringWithFormat:@"%d", year], @"year", nil]; 

    return dateDict; 
} 
+2

'YYYY'는 거의 맞지 않습니다. – vikingosegundo

0
+(NSDate*)str2date:(NSString*)dateStr{ 
    if ([dateStr isKindOfClass:[NSDate class]]) { 
     return (NSDate*)dateStr; 
    } 

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"yyyy-MM-dd"]; 
    NSDate *date = [dateFormat dateFromString:dateStr]; 
    return date; 
} 
1

simple approach 당신은 SQLite는 DB를 경우에도 :

// NSTimeInterval is basically typedef of double so you can receive it as double also. 
NSTimeInterval *current = [[NSDate date] timeIntervalSince1970]; 
[DB addToDB:current]; 

//retrieve the date from DB 
NSDate *retrievedDateItem = [[NSDate alloc] initWithTimeIntervalSince1970:[getDBValueAsDouble]]; //convert it from double (NSTimeInterval) to NSDate 
// Set the style 
[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; 
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle]; 
// Converted to string 
NSString *convertedDate = [dateFormatter stringFromDate:retrievedDateItem]; 

이 예제의 출력 :

2015년 8월 3일, 오후 12시 27분 50초

0

스위프트의 제 작업 버전

func dateFor(timeStamp: String) -> NSDate 
{ 
    let formater = NSDateFormatter() 
    formater.dateFormat = "HH:mm:ss:SSS - MMM dd, yyyy" 
    return formater.dateFromString(timeStamp)! 
} 


func timeStampFor(date: NSDate) -> String 
{ 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "HH:mm:ss:SSS - MMM dd, yyyy" 

    return dateFormatter.stringFromDate(date) 
}