使用 NSDateFormatter 管理日期
Posted
技术标签:
【中文标题】使用 NSDateFormatter 管理日期【英文标题】:Manage date with NSDateFormatter 【发布时间】:2011-05-26 16:36:45 【问题描述】:我尝试使用 NSDateFormatter 获取和管理日期,但如何使其工作。 我认为这是我的第一个“dateFormatter”格式不正确的问题,因为当我使用带有函数“stringFromDate”和参数“[NSDate date]”的第二个格式化程序时效果很好,但当我使用我的 NSDate 时却不行日期从字符串”。
//"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, MMM d, yyyy"];
//NSString *toDate = [dateFormatter stringFromDate:dateFromString];
NSString *toDate = [dateFormatter stringFromDate:[NSDate date]];
感谢您的帮助:)
【问题讨论】:
对不起,我弄错了。 在将它发送到 dateFormatter 之前,'dateString' 中的内容是什么? 【参考方案1】:当然,DateFormat 与您从服务器收到的不同。
试试这个:
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss Z"];
NSDate *date = [dateFormatter dateFromString:[dateString stringByReplacingOccurrencesOfString:@"Z" withString:@" +0000"]];
【讨论】:
【参考方案2】:假设 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:
获取字符串以显示用户。如果它仍然无法正确显示,请设置日历(我忘记了您是否总是必须设置它或者是否有默认设置)。
【讨论】:
以上是关于使用 NSDateFormatter 管理日期的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSDateFormatter 格式化月份和年份返回无效日期
NSDateFormatter:仅当应用程序针对该语言进行本地化时才显示本地化日期
将事件添加到日历时,NSDateFormatter 未正确格式化日期