2014-07-08 7 views
6

Sto riscontrando un problema quando si tratta di prendere due NSDate e di visualizzare una stringa localizzata per l'intervallo.Ottenere la stringa dell'intervallo di date localizzato da due NSD

Per esempio, dicono sono date il 7 luglio e il 9 luglio avrei bisogno le seguenti stringhe localizzate:

  • IT: 7-9 luglio
  • FR: 7-9 Juliet
  • ES: 7-9 Julio
  • DE: 7. bis. 9. Juli

Ovviamente l'utilizzo di NSString stringWithFormat: non funzionerà qui. Per semplicità, non entriamo nemmeno nel caso in cui il range sia di due mesi separati. So come ottenere una stringa formattata per ogni data ma la formattazione in un intervallo che mi sta ricevendo.

È possibile utilizzare uno NSDateFormatter per ottenere questo? Più mi guardo intorno, più penso avrò bisogno di avere un interruttore per ogni locale.

MODIFICA: per chiarire, ho solo bisogno dell'intervallo di date per le impostazioni locali dell'utente. Non ho bisogno di tutti loro allo stesso tempo.

+0

possibile duplicato di [cacao - stringa localizzata da NSDate, NSCalendarDate] (http://stackoverflow.com/questions/1011175/cocoa-localized- string-from-nsdate-nscalendardate) – rishi

+0

@rishi Questo non è un duplicato di questa domanda. – rmaddy

+0

senza cambiare la localizzazione, vuoi recuperare la data localizzata? – rishi

risposta

8

Dopo ulteriori ricerche sembra in iOS 8.0+ è possibile utilizzare NSDateIntervalFormatter per fare questo. Questo non mi aiuta ora ma è confortante sapere che sta arrivando.

5

Per approfondire la risposta di Adam con alcuni esempi di codice:

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