问题描述
|
我尝试使用NSDateFormatter获取和管理日期,但如何使其有效。
我认为这是我的第一个\“ dateFormatter \”格式不正确的问题,因为当我将第二个格式化程序与函数\“ stringFromDate \”和参数\“ [NSDate date] \”一起使用时,它的效果很好,但是当我使用我的NSDate \“ dateFromString \”时却没有。
//\"dateString\" have this format: \"2011-05-26T16:18:26Z\"
Nsstring *dateString = [[tracks objectAtIndex:0] objectForKey:@\"to-date\"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@\"EEE,MMM d,yyyy\"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];
[dateFormatter release];
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@\"EEE,yyyy\"];
//Nsstring *toDate = [dateFormatter stringFromDate:dateFromString];
Nsstring *toDate = [dateFormatter stringFromDate:[NSDate date]];
谢谢您的帮助 :)
解决方法
当然,DateFormat与您从服务器接收到的是不同的。
尝试这个:
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@\"yyyy-MM-dd\'T\'HH:mm:ss Z\"];
NSDate *date = [dateFormatter dateFromString:[dateString stringByReplacingOccurrencesOfString:@\"Z\" withString:@\" +0000\"]];
,假设to-date
是一个字符串并且还不是NSDate,请尝试以下操作:
//\"dateString\" have this format: \"2011-05-26T16:18:26Z\"
NSString *dateString = [[tracks objectAtIndex:0] objectForKey:@\"to-date\"];
NSDate *dateFromString = [[NSDate dateFromString:dateString];
如果要以特定格式向用户显示日期,则可以使用设置NSDateFormatter
,然后使用stringFromDate:
获取显示给用户的字符串。如果仍然无法正确显示日历,请设置日历(我忘记了是否始终需要设置日历或是否存在默认设置)。