7

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

4

4 回答 4

11

一般来说,最好将日期保持在不可知的类型中,并且仅在必须显示它们时对其进行格式化。一种常见的格式是存储自 1970 年或您选择的其他日期以来的秒数。

例如,以下代码将为本地用户显示正确格式的当前时间。

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

但是,当您确实有特定于区域设置格式的日期时,您可以再次使用格式化程序类对其进行转换。例如

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

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

于 2010-02-09T09:06:31.087 回答
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];
于 2010-02-09T14:55:59.153 回答
2

试试这个

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];
于 2010-02-09T10:31:57.003 回答
1

迅速

dateFormatter.locale = NSLocale(localeIdentifier: "en_US") as Locale!
dateFormatter.dateFormat = "dd/MM/yyyy"
let resultsDate = dateFormatter.string(from: date)
于 2017-03-07T11:09:02.457 回答