我需要转换
3/27/2015 5:45:00 AM
将字符串转换为NSDate对象。
我试过了;
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
但它不起作用。
我无法理解的可能是什么错误?
由于
已添加代码;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *tempDate = [dateFormatter dateFromString:@"3/27/2015 5:45:00 AM"]
编辑:
不知何故,因为时间片(AM / PM)变为空。 我删除了" a"来自dateformatter,来自字符串的AM。没关系。 但是仍然不知道" a" ?
答案 0 :(得分:3)
您忘记了将日期区域设置的区域设置添加到日期格式化程序中。
代码将运行正常任何设置为美国英语的设备,但其他语言环境将失败。只需添加en_US_POSIX
作为日期格式化程序的区域设置:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
dateFormatter.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
NSDate *tempDate = [dateFormatter dateFromString:@"3/27/2015 5:45:00 AM"];
答案 1 :(得分:0)
我不明白你的问题。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *tempDate = [dateFormatter dateFromString:@"3/27/2015 5:45:00 AM"];
NSLog(@"%@", tempDate); // prints "2015-03-27 09:45:00 +0000" to the console.
这是您发布的代码。我逐字复制了它。我包含的NSLog
正确打印了一个日期,而不是nil
。