2010-02-09 6 views
6

Tôi đang làm việc trên một ứng dụng mà tôi lưu Ngày hiện tại trong cơ sở dữ liệu nhưng khi ứng dụng của tôi chạy bằng tiếng Ả Rập, định dạng ngày hiện tại được thay đổi thành tiếng Ả Rập.I có nghĩa là định dạng ngày phải như thế này 09/02/2010 nhưng các chữ số được chuyển đổi sang chữ số Ả Rập. Làm thế nào để tôi chuyển đổi chúng trở lại chữ số tiếng Anh ngay cả khi ứng dụng của tôi chạy bằng tiếng Ả Rập?iphone sdk: làm thế nào để chuyển đổi định dạng ngày tiếng Ả Rập sang tiếng Anh?

Trả lời

11

Nói chung, tốt nhất là giữ ngày tháng theo loại không thuyết phục và chỉ định dạng chúng khi chúng được hiển thị. Một định dạng phổ biến là lưu trữ số giây kể từ năm 1970 hoặc một ngày khác mà bạn chọn.

Ví dụ: đoạn mã sau sẽ hiển thị thời gian hiện tại được định dạng chính xác cho người dùng cục bộ.

NSDate* now = [NSDate dateWithTimeIntervalSinceNow:0]; 
NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; 
[formatter setLocale:[NSLocale currentLocale]]; 
NSString* localDateString = [formatter stringFromDate]; 
[formatter release]; 

Tuy nhiên, khi bạn có ngày ở định dạng địa phương cụ thể, bạn lại có thể sử dụng lớp trình định dạng để chuyển đổi. Ví dụ.

NSString* localDate = @"09/02/2010"; // assume this is your string 

NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; 
[formatter setLocale:[NSLocale currentLocale]]; 
NSDate* date = [formatter dateFromString: localDate]; 
[formatter release]; 

Để làm việc với bất kỳ loại dữ liệu địa phương cụ thể nào (ngày, tiền tệ, số đo) thì lớp định dạng là bạn của bạn.

+0

này làm thế nào để thay đổi ngôn ngữ arabic đến một miền địa phương tiếng Anh cố định? –

+3

Nhìn vào NSFormatter setLocale - bạn có thể chuyển vào bất kỳ định danh địa phương nào bạn muốn. –

+0

Câu trả lời hay. Cảm ơn... – Biranchi

1

Hãy thử điều này

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"EST"]; 
[dateFormatter setTimeZone:timeZone]; 
[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; 
NSString *dateString = [dateFormatter stringFromDate:localDate]; 
6

tôi tìm thấy nó ở đây tôi đã làm nó như

NSDate *CurrentDate = [NSDate date]; 
NSDateFormatter *Formatter=[[NSDateFormatter alloc] init]; 
NSLocale *indianLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
[Formatter setLocale:indianLocale]; 
[Formatter setDateFormat:@"dd/MM/yyyy"]; 
NSString *FormattedDate=[Formatter stringFromDate:CurrentDate]; 
[indianLocale release]; 
[Formatter release]; 
0

Swift

dateFormatter.locale = NSLocale(localeIdentifier: "en_US") as Locale! 
dateFormatter.dateFormat = "dd/MM/yyyy" 
let resultsDate = dateFormatter.string(from: date)