I dize için böyle uzantısını yazdık değil:Dize İngilizce olarak çalışır, ancak Rusça
extension String {
var asDate : NSDate! {
print(self)
let styler = NSDateFormatter()
styler.dateFormat = "dd MMM yyyy"
print(styler.dateFromString(self))
if let aStyler = styler.dateFromString(self) {
return aStyler
} else {
return NSDate()
}
}
}
Ben İngilizce dil cihazda ayarlandığında yalnızca çalıştığını fark ettik. Bununla birlikte, örneğin, Rusça ile çalışmaz. Niye ya?
Bir dize alır mesela "10 Nis 2016" ve bu dizeyi tarihe dönüştürmeli. dili İngilizce olmayan Ancak styler.dateFromString(self)
nil
zaman. Kendim (dönüştürmek istediğim dize) unicode biçimini eşleştirdim. Ancak, ben styler.dateFromString(self)
hep nil döndürür neden anlamıyorum.
Ne demek "Ben [dizgenin] unicode biçimiyle eşleştiğini kontrol ettim"? Bu dize Nisan için gerçek Rus adını içerir mi? Yoksa İngiliz dizisini Rus ortamında mı dönüştürmek istiyorsunuz? – hnh
Muhtemelen Nisan rusça olmadığı için? Lütfen bunu kontrol edin, yerel ayarı ayarlayamazsınız, böylece bir probleminiz olmazdı. . -> http://stackoverflow.com/a/6735644/767329 –
Dize her zaman İngilizce'dir, tarih biçimi "10 Nis 2016" şeklindedir. Unicode formatına göre styler.dateFormat string değeri LDML ile eşleşiyordu (http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Patterns_AM_PM), bu yüzden doğru. – phbelov