2017-09-09 5 views
1

현지화 된 문자열을 월 및 일로 만 날짜에서 가져올 수 있습니까?DateFormatter localizedString - 연도가없는 일 및 월

let localizedDate = DateFormatter.localizedString(from: date, dateStyle: .medium, timeStyle: .none) 

Sept 15, 2017 또는 15 Sep 2017 인쇄합니다.

나는 사용자의 날짜 형식을 기리고 1 년 1 개월 만 표시하지 않습니다. 나는 Sept 15 또는 15 Sep을 의미합니다. 가능한가?

답변

1

요일과 월별로 포매 트를 만들고이를 사용하여 형식 템플릿을 만들 수 있습니다. 그러면 DateFormatter가이를 현지화합니다. (Xcode9) 운동장에서 예를 들어 : 당신이 templateFormatter 대신 내가 만든 예제들에 Locale.current에 전달하면

let date = Date() 
let customFormat = "ddMMMM" 

let gbLocale = Locale(identifier: "en_GB") 
let ukFormat = DateFormatter.dateFormat(fromTemplate: customFormat, options: 0, locale: gbLocale) 
let usLocale = Locale(identifier: "en_US") 
let usFormat = DateFormatter.dateFormat(fromTemplate: customFormat, options: 0, locale: usLocale) 

let formatter = DateFormatter() 
formatter.dateFormat = ukFormat 
formatter.string(from: date) // -> "09 September" 

formatter.dateFormat = usFormat 
formatter.string(from: date) // -> "September 09" 

, 당신은 템플릿의 지역화 된 버전을 얻을 것이다.

짧은 달 형식에 대한 질문을하므로 사용자 지정 형식의 "MMMM"을 "MMM"으로 바꾸면 전체 달 대신 단축 달 이름을 표시 할 수 있습니다. "dd"대신 "d"를 사용하면 날짜에 "0"이 오지 않습니다. 내가 무슨 뜻인지 알거야.

+0

좋은 소리입니다. 확인 필요;) –