在哥伦比亚使用该应用程序时,将NSString转换为NSDate的日期为nil,但在印度工作正常。没有得到确切的解决方案。有人可以帮忙吗?
我正在使用此代码
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSString *newDateString = [dateFormatter stringFromDate:[NSDate date]];
NSString *dateString = [NSString stringWithFormat:@"%@ %@",newDateString,@"08:00:00"];
NSDateFormatter *dateFormatterToSaveDate = [[NSDateFormatter alloc] init];
[dateFormatterToSaveDate setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
NSDate *dateToSave = [[NSDate alloc] init];
dateToSave = [dateFormatterToSaveDate dateFromString:dateString];
答案 0 :(得分:0)
试试这段代码: NSString到NSDate
NSString *dateString = @"01-02-2010 05:30:00";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
答案 1 :(得分:0)
我认为这是一个区域设置问题,它与iOS 7中的NSDateFormatter字符串相同,只是相反。
尝试将区域设置设置为en_US或currentLocale
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
or
NSLocale *locale = [NSLocale currentLocale];
答案 2 :(得分:0)
您要转换的日期字符串在哪里?用户输入? D b?其他一些网络服务?
字符串是固定格式(即来自db / web服务),在这种情况下,您需要使用固定格式转换它,或者字符串是用户输入,因此将在用户所在的语言环境中所以你需要用用户区域设置转换它。
答案 3 :(得分:0)
这可能是因为设备的时间格式和时间格式之间存在差异。你的约会对象的时间格式。尝试设置正确的时区&区域设置。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSTimeZone *timeZone = [NSTimeZone localTimeZone];
[formatter setTimeZone:timeZone];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocale:locale];
来自docs:
如果您正在使用固定格式的日期,则应首先设置 日期格式化程序的区域设置适合您的固定格式 格式。在大多数情况下,最好选择的语言环境是en_US_POSIX,a 专门设计用于产生美国英语结果的语言环境 无论用户和系统偏好如何。 en_US_POSIX也是 及时不变(如果美国在未来的某个时候改变了 它格式化日期的方式,en_US将改变以反映新的行为, 但en_US_POSIX将不会,以及平台之间(en_US_POSIX工作 在iPhone OS上和在OS X上一样,就像在其他操作系统上一样 平台)。
将en_US_POSIX设置为日期格式化程序的区域设置后,即可 然后可以设置日期格式字符串,日期格式化程序将表现 始终如一地为所有用户。