2012-04-16 93 views
1

我试图日期从字符串转换,奇怪的日期格式问题

下面是我的代码,

str_date = @"04/16/2011 00:00:00 AM"; 

NSDateFormatter *dtF = [[NSDateFormatter alloc] init]; 
[dtF setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; 

NSDate *d = [dtF dateFromString:str_date]; 


NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd"]; 
NSString *dateString = [dateFormat stringFromDate:d]; 
[dateFormat release]; 

return dateString; 

这里的问题是,在模拟器它工作正常,并转换串日期和日期字符串,但与设备,它不能够转换字符串到日期

在iPod的视网膜它没有显示日期,但与iPhone 3GS它显示的日期

请帮我解释我做了什么?

+0

您可能会运行到[这个问题](HTTP:/ /stackoverflow.com/questions/6613110/what-is-the-best-way-to-deal-with-the-nsdateformater-locale-feature) - 手机的行为奇怪,如果设置中的12/24小时设置是在与您的区域设置冲突。 – 2012-04-16 15:29:24

+0

我已经解决了问题,我只是从字符串中删除了时间,然后删除了HH:mm:ss a,它正在工作,我遇到了一些类似于Hot Licks通知的问题。 – 2012-04-17 05:43:40

回答

1

只需更换这行像这样

NSDateFormatter *dtF = [[NSDateFormatter alloc] init]; [dtF setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; 

由于HH使用24小时格式和hh使用12小时格式...