如何将任何语言的日期(阿拉伯语)转换为特定语言(英语)。
在将区域格式更改为阿拉伯语时,日期会发生变化。当我从某些控件(UIButtons或UILabels)中选择日期值以保存数据库时,它会选择阿拉伯语的日期并以相同的格式保存。在这里,我想将日期从阿拉伯语转换为英语,然后将其保存在数据库中。
我尝试了这个,但它的回归是
NSDate *currentDate = //My date coming like “٢٠١٤-٠٥-١٥ ١٢:١٠:٢٣ ”
NSDateFormatter *formatter=[[NSDateFormatter alloc] init];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[formatter setLocale: usLocale];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:s a"];
NSString *formattedDate = [formatter stringFromDate: currentDate];
有人可以帮助我吗?
答案 0 :(得分:8)
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
[dateFormatter setTimeZone:timeZone];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:s"];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:usLocale];
NSString *dateString = [dateFormatter stringFromDate:myDate];
答案 1 :(得分:4)
您不应以任何语言存储日期。您应该存储没有语言或区域设置或时区的NSDate,并根据需要显示它。如果您的数据库无法存储NSDate,您可以使用类方法dateWithTimeIntervalSince1970存储[myDate timeIntervalSince1970]并将其转换为NSDate:
答案 2 :(得分:0)
您应该使用UIDatePicker作为输入而不是UIButtons或UILabels。将timeIntervalSince1970保存到您的数据库中,以便可以用任何语言显示它。
NSDate *currentDate = //My date coming like “٢٠١٤-٠٥-١٥ ١٢:١٠:٢٣ ”
NSTimeInterval timeToBeSavedInDatabase = [currentDate timeIntervalSince1970];
//in the future, you can show this date in any language
NSString *dateString = [formatter stringFromDate:[NSDate dateWithTimeIntervalSince1970]];
答案 3 :(得分:0)
您可以使用此选项来获取首选本地
的日期 NSDate * dateNow = [NSDate new];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormat setLocale: usLocale];
[dateFormat setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSString * dateString = [dateFormat stringFromDate:dateNow];