12hr 날짜 형식으로 올바르게 작동하는 문자열을 날짜로 변환하려고합니다. 장치 날짜 형식을 24로 변경하면 항상 nil이 반환됩니다. 시도 아래 코드iPhone에서 24 시간 날짜 형식으로 항상 날짜 변환이 없음
let formatter = DateFormatter()
formatter.dateFormat = "h:mm a"
let date = formatter.date(from: "6:00 am")
12hr 날짜 형식으로 올바르게 작동하는 문자열을 날짜로 변환하려고합니다. 장치 날짜 형식을 24로 변경하면 항상 nil이 반환됩니다. 시도 아래 코드iPhone에서 24 시간 날짜 형식으로 항상 날짜 변환이 없음
let formatter = DateFormatter()
formatter.dateFormat = "h:mm a"
let date = formatter.date(from: "6:00 am")
따르면 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
를 확인이
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)
}
}
으로 변경했으나 날짜 값은 임의로 선택됩니다. –
''h : mm '로 유효한 날짜를 반환하는 이유는 무엇입니까? '형식? –
을 설정하기 전에 당신이
locale
설정 dateformat을 "H : mm a" –