2014-07-08 3 views
6

Ich habe ein Problem, wenn es darum geht, zwei NSDate s zu verwenden und eine lokalisierte Zeichenfolge für den Bereich anzuzeigen.Lokalisierte Datumsbereichs-Zeichenfolge von zwei NSDates abrufen

Zum Beispiel, sagen meine Termine sind am 7. Juli und 9. Juli habe ich die folgenden lokalisierten Strings müssten:

  • EN: July 7-9
  • FR: 7-9 Juliet
  • ES: 7-9 Julio
  • DE: 7. bis. 9. Juli

Offensichtlich mit NSString stringWithFormat: wird hier nicht funktionieren. Gehen wir der Einfachheit halber nicht einmal in den Fall, in dem Ihre Reichweite zwei getrennte Monate ist. Ich weiß, wie man für jedes Datum eine formatierte Zeichenfolge erhält, aber es formatiert es in einem Bereich, der mich erreicht.

Gibt es eine Möglichkeit, eine NSDateFormatter zu verwenden, um das zu bekommen? Je mehr ich mich umschaue, desto mehr denke ich, dass ich für jedes Gebietsschema einen Wechsel brauche.

EDIT: Um zu klären, brauche ich nur den Datumsbereich für das Gebietsschema des Benutzers. Ich brauche nicht alle gleichzeitig.

+0

möglich Duplikat [Cocoa - Lokalisierte String aus NSDate, NSCalendarDate] (http://stackoverflow.com/questions/1011175/cocoa-localized- string-from-nsdate-nscalendardate) – rishi

+0

@rishi Das ist kein Duplikat dieser Frage. – rmaddy

+0

ohne das Gebietsschema zu ändern, möchten Sie das lokalisierte Datum holen? – rishi

Antwort

8

Nach weiteren Untersuchungen sieht es aus wie in iOS 8.0+ können Sie NSDateIntervalFormatter verwenden, um dies zu tun. Das hilft mir jetzt nicht, aber es ist beruhigend zu wissen, dass es auf dem Weg ist.

5

Um mit einigen Beispielcode auf Adams Antwort zu erarbeiten:

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