NSDateComponentsFormatter istediğiniz şeydir. Tam olarak aradığınız şeyi üretmeyebilir, ancak benim izlenimim, ICU standart sözleşmelerine uygun çıktı üretmeyi amaçlamasıdır. Örneğin, bu göz önünde bulundurun: üretir
NSDateComponentsFormatter* dcf = [[NSDateComponentsFormatter alloc] init];
dcf.unitsStyle = NSDateComponentsFormatterUnitsStyleAbbreviated;
NSCalendar* cal = [NSCalendar calendarWithIdentifier: NSCalendarIdentifierGregorian];
cal.locale = [NSLocale localeWithLocaleIdentifier: @"es_ES"]; // Spanish locale for Spain
dcf.calendar = cal;
NSLog(@"%@", [dcf stringFromTimeInterval: 1000000]);
...: Yani
1 semana, 4 d, 13 h, 46 min, 40 s
, bu örnek formatı biraz daha farklı, ama benim tahminim bir yerde derin yoğun bakım unicode standartlarında Belgeler, bir aralıkta hem haftalar hem de saniyeler varsa, "s" yerine haftalar için "semana" aldığınız belirtilir. Bu belgeyi bulmaya çalışırken kendime işkence yapmayacağım.
Eğer ICU çözümünü arıyorsanız, işte budur. Farklı bir şey arıyorsanız, kendi yuvarlanmanız halinde sıkışmış olabilirsiniz. Ayrıca, birkaç farklı "birim stili" bulunduğunu ve başkalarını da deneyebileceğinizi ve durumunuza en uygun olanı seçebileceğinizi unutmayın.
Yerele göre arkadaş canlısı kelimelere göre İspanyolca'da şöyle bir sonuç çıkacaktır: ** 1s 3d 4h 15m 21s **? Not: (semana = hafta, dia = gün, minuto = dakika, Segundo = saniye) –
evet, tam olarak. NSDateFormatter'ın yerelleştirilmiş biçimleri ve dili nasıl kullanacağı gibi. – tenfour
Dizgiyi her zaman değiştirme değişkenleriyle ve [gerektiği gibi çevirmek için standart "yerelleştirilmiş dizgi" işlemlerini kullanın) (http://stackoverflow.com/a/14984616/581994) kullanabilirsiniz. –