2010-05-30 8 views
4

날짜를 문자열에서 다른 형식으로 포맷하려고합니다.문자열에서 날짜 서식 지정

예 : 2012-05-29 23:55:52에서 29/05 *newline* 2010.

난 그냥

어떤 도움

부탁드립니다 ..있는 NSDate 및 NSDateFormatter 뒤에 논리는, 내가 생각하지 않습니다. 감사합니다 :) 당신은 NSDateFormatter를 만든 다음이 당신이 가진 첫 데이트, 예를 들어 일치 dateFormat는의 설정해야합니다

+0

관련 : [코코아의있는 NSDate를 통해 지원되지 않는 날짜 형식을 구문 분석] (http://stackoverflow.com/questions/399527/parsing-unsupported-date-formats-in-via-cocoas-nsdate) – miku

답변

9

:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 

날짜 문자열을 인식하는 날짜의 포맷을 설정합니다. 그런 다음 이것을 사용하여 NSDate 객체를 얻을 수 있습니다.

NSDate *myDate = [dateFormatter dateFromString:myDateString]; // myDateString is the 2012-05-29 23:55:52 string 

이렇게하면 해당 날짜를 나타내는 전체 NSDate 객체를 얻을 수 있습니다.

[dateFormatter setDateFormat:@"dd/MM\nyyyy"]; 
NSString *newlyFormattedDateString = [dateFormatter stringFromDate:myDate]; 
[dateFormatter release], dateFormatter = nil; 

그리고 짜잔 : 지금 당신은 날짜를 포맷하고 문자열로 다시 전원을 켜십시오, 그래서 새로운 형식으로 포맷에 dateformat을 사용할 설정하고 반환 날짜의 새로운 캐릭터 라인 표현을 얻을 필요가! 새 날짜가 있습니다 :

+0

감사합니다 ! 나는 그날 날짜에서 문자열을 얻을 수 있다는 것을 몰랐습니다! 이것은 트릭을했다. – Emil

1

단순한 문자열 처리 만 수행하는 경우 날짜 개체를 통과하는 것은 실제로 필요하지 않습니다.

let dateString = "2012-05-29 23:55:52" 
let dateParts = dateString.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: "- :")) 
let newDateString = "\(dateParts[2])/\(dateParts[1])\n\(dateParts[0])" 

print(newDateString) 
+0

이전에는 이런 식으로 생각한 적이 없었습니다. 실제로 이것은 훌륭한 솔루션이며 날짜 개체보다 적은 리소스를 사용합니다. 감사! – Emil