iphone sdk:如何将阿拉伯语日期格式转换为英语?

时间:2010-02-09 08:26:24

标签: iphone objective-c iphone-sdk-3.0 nsdate

我正在开发一个应用程序,其中我将当前日期保存在数据库中但当我的应用程序以阿拉伯语运行时,当前日期格式更改为阿拉伯语。我的意思是日期格式应该像这样09/02/2010但是数字转换为阿拉伯数字。即使我的应用程序以阿拉伯语运行,我如何将它们转换回英文数字?

4 个答案:

答案 0 :(得分:11)

一般情况下,最好将日期保存在不可知类型中,并且只有在必须显示时才格式化日期。一种常见格式是存储自1970年以来的秒数或您选择的其他日期。

E.g。以下代码将显示为本地用户正确格式化的当前时间。

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

但是,如果您确实具有特定于语言环境的格式的日期,则可以再次使用formatter类进行转换。 E.g。

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];

对于使用任何类型的特定于语言环境的数据(日期,货币,度量),格式化程序类是您的朋友。

答案 1 :(得分:6)

我在这里找到了它就像这样做了

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];

答案 2 :(得分:1)

试试这个

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];

答案 3 :(得分:0)

<强>夫特

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