2017-09-12 2 views
-2

12hr 날짜 형식으로 올바르게 작동하는 문자열을 날짜로 변환하려고합니다. 장치 날짜 형식을 24로 변경하면 항상 nil이 반환됩니다. 시도 아래 코드iPhone에서 24 시간 날짜 형식으로 항상 날짜 변환이 없음

let formatter = DateFormatter() 
    formatter.dateFormat = "h:mm a" 
    let date = formatter.date(from: "6:00 am") 
+2

을 설정하기 전에 당신이 locale 설정 dateformat을 "H : mm a" –

답변

3

따르면 Technical Q&A QA1480로하십시오

는 고정 된 형식의 날짜로 작업하는 경우, 먼저의 로케일을 설정해야 날짜 형식화 프로그램을 사용하여 고정 형식에 적합한 형식으로 변환하십시오. 대부분의 경우 선택할 수있는 최상의 로케일은 "en_US_POSIX"입니다.이 로케일은 사용자 및 시스템 환경 설정에 관계없이 미국 영어 결과를 산출하도록 특별히 설계되었습니다.

그래서, 당신은 당신의 DateFormatter

let formatter = DateFormatter() 
formatter.locale = Locale(identifier: "en_US_POSIX") 
formatter.dateFormat = "hh:mm a" 
let date = formatter.date(from: "6:00 am") 

locale 속성을 설정해야 할 장치의 국가 별 설정을 사용하여 해석되는 일을 방지하기 위해 : 그것은 중요 변경하십시오 dateFormat

-4

를 확인이

let formatter = DateFormatter() 
    formatter.dateFormat = "h:mm a" 
    if let date = formatter.date(from: "14:00 am"){ 
    print(date) 
    }else { 
    formatter.dateFormat = "H:mm a" 
    if let setdate = formatter.date(from: "14:00 am") { 
    print(setdate) 
    } 
    } 
+0

으로 변경했으나 날짜 값은 임의로 선택됩니다. –

+2

''h : mm '로 유효한 날짜를 반환하는 이유는 무엇입니까? '형식? –