我正在开发一个应用程序,在该应用程序中,我将当前日期保存在数据库中,但当我的应用程序以阿拉伯语运行时,当前日期格式将更改为阿拉伯语。我的意思是日期格式应该是这样的09/02/2010,但是数字被转换为阿拉伯数字。那么,即使我的应用程序运行在阿拉伯语中,我如何将它们转换回英语数字?
发布于 2010-02-09 09:06:31
一般来说,最好将日期保存为不可知的类型,并仅在必须显示时格式化它们。常用的格式是存储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];
对于处理任何类型的特定于区域设置的数据(日期、货币、度量),格式化程序类是您的朋友。
发布于 2010-02-09 14:55:59
我是在这里找到的,我是这样做的
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-09 10:31:57
尝尝这个
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];
https://stackoverflow.com/questions/2227681
复制相似问题