Я работаю над приложением, в котором я сохраняю Текущую дату в базе данных, но когда мое выполнение приложения на арабском языке формат текущей даты изменяется на арабский язык. Я подразумеваю, что формат даты должен быть похожим на этот 02.09.2010, но цифры преобразовываются в арабские цифры. Таким образом, как я преобразовываю их назад в английские цифры даже если мое приложение, работающее на арабском Языке?
В общем случае лучше всего хранить даты в агностическом типе и форматировать их только тогда, когда они должны быть отображены. Обычным форматом является хранение количества секунд с 1970 года или другой даты по вашему выбору.
Например, следующий код отобразит текущее время, правильно отформатированное для локального пользователя.
NSDate* now = [NSDate dateWithTimeIntervalSinceNow:0];
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
NSString* localDateString = [formatter stringFromDate];
[formatter release];
Однако если у вас есть дата в локальном формате, вы можете использовать класс formatter для ее преобразования. Например,
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];
Для работы с любым типом локально-специфических данных (даты, валюта, измерения) классы formatter - ваш друг.
я нашел его здесь и сделал вот так
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];
Try this
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];