2014-07-08 23 views
6

Występuje problem, jeśli chodzi o wykonanie dwóch NSDate s i wyświetlenie zlokalizowanego ciągu znaków dla zakresu.Uzyskiwanie zlokalizowanego łańcucha dat z dwóch NSDates

Na przykład, powiedzmy moje terminy są na 7 lipca i 9 lipca musiałbym zlokalizowane następujące ciągi:

  • PL: 7-9 lipca
  • FR: 7-9 Juliet
  • ES: 7-9 Julio
  • DE: 7. bis. 9. Juli

Oczywiście użycie tutaj NSString stringWithFormat: nie będzie tutaj działać. Dla uproszczenia, nie pozwólmy sobie nawet na przypadek, w którym twój zasięg wynosi dwa oddzielne miesiące. Wiem, jak uzyskać sformatowany ciąg znaków dla każdej daty, ale formatuję go w zakresie, który mnie przyciąga.

Czy jest sposób użycia NSDateFormatter, aby to uzyskać? Im więcej się rozglądam, tym bardziej myślę, że potrzebuję mieć przełącznik dla każdego locale.

EDYCJA: Aby to wyjaśnić, potrzebuję tylko zakresu dat dla ustawień narodowych użytkownika. Nie potrzebuję ich wszystkich w tym samym czasie.

+0

możliwe duplikat [Cocoa - Zlokalizowane ciąg z NSDate, NSCalendarDate] (http://stackoverflow.com/questions/1011175/cocoa-localized- string-from-nsdate-nscalendardate) – rishi

+0

@rishi To nie jest duplikat tego pytania. – rmaddy

+0

bez zmiany lokalizacji, którą chcesz pobrać zlokalizowaną datę? – rishi

Odpowiedz

8

Po dalszych badaniach wygląda na to, że w iOS 8.0+ można użyć do tego celu NSDateIntervalFormatter. To mi teraz nie pomaga, ale pocieszam się, że jest w drodze.

5

Aby rozwinąć na odpowiedź Adama z niektórych przykładowy kod:

let formatter = NSDateIntervalFormatter() 
formatter.dateStyle = NSDateIntervalFormatterStyle.ShortStyle 
formatter.timeStyle = NSDateIntervalFormatterStyle.NoStyle 
let dateRangeStr = formatter.stringFromDate(startDate, toDate: endDate)