2016-06-09 2 views
-8

"2016 년 6 월 18 일 토요일"을 "18/06/2016"으로 구문 분석하려고합니다. 정규식 메서드를 사용하여이 작업을 수행 할 수 있습니다. 그러나 어떻게 얻을 수 있는지 잘 모르겠습니다. 그것을 사용하여 출력.iOS 용 Swift에서 NSDateFormatter를 사용하여 날짜 형식을 지정하는 방법은 무엇입니까?

NSDateFormatter를 신속하게 사용하는 방법이 바람직합니다.

+1

NSDateFormatter를 사용하는 것이 적절한 해결책입니다. 정규식을 사용하는 것은 이것이 당신이 어떻게해야하는지 전혀 아닙니다. 지금까지 시도한 내용으로 질문을 업데이트하십시오. – rmaddy

+1

아마도 설명서를 읽으십시오. – Alexander

+0

Apple 문서 'NSDateFormatter' : https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/. NSDateFormatter와 관련된 문제가 있다면 코드와 문제를 포함하도록 질문을 편집하십시오. –

답변

0

여기 있습니다.

NSDateFormatter은 서수 표시기가있는 요일을 지원하지 않으므로 삭제해야합니다. 정규식을 사용할 수 있습니다.

let regex = try NSRegularExpression(pattern: "[st|nd|rd|th]", options: NSRegularExpressionOptions()) 
    regex.replaceMatchesInString(dateString, options: NSMatchingOptions(), range: NSMakeRange(0, 4), withTemplate: "") 

그런 다음 날짜 형식을 지정하기 만하면됩니다.


전체 코드 :

let dateString = NSMutableString(string: "18th of June 2016. Saturday") 

    do { 
     let regex = try NSRegularExpression(pattern: "[st|nd|rd|th]", options: NSRegularExpressionOptions()) 
     regex.replaceMatchesInString(dateString, options: NSMatchingOptions(), range: NSMakeRange(0, 4), withTemplate: "") 

     let formatter = NSDateFormatter() 
     formatter.locale = NSLocale(localeIdentifier: "en_US") 
     formatter.dateFormat = "d' of 'MMMM y'.' EEEE" 
     let date = formatter.dateFromString(dateString as String) 
     formatter.dateStyle = .ShortStyle 
     formatter.locale = NSLocale.currentLocale() 
     let output = formatter.stringFromDate(date!) 
     print(output) 

    } catch let error as NSError { print(error) } 


NSNumberFormatter 현재 로케일 설정에 따라 포맷합니다 있음을 유의하십시오.

+0

원래 날짜 문자열이 특정 언어 (영어)이므로 날짜 포맷터의 로켈을 영어 로켈로 설정해야합니다. – rmaddy

+0

@rmaddy 당신은 절대적으로 옳습니다. 내 대답을 – guidev

+0

멋지게 +1 업데이 트했습니다, 이것은 훌륭한 대답입니다 :) – Dhiru

관련 문제