从日,月和年生成NSDate [英] Generate NSDate from day, month, and year

查看:125
本文介绍了从日,月和年生成NSDate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



现在我的尝试是这样的:

我试图从一个月和一年生成一个NSDate

  NSCalendar * calendar = [NSCalendar currentCalendar]; 
NSDateComponents * components = [[NSDateComponents alloc] init];
NSNumber * day = [dataSource valueForKey:@day];
NSNumber * month = [dataSource valueForKey:@month];
NSNumber * year = [dataSource valueForKey:@year];
[components setDay:[day intValue]];
[components setMonth:[month intValue]];
[components setMonth:[year intValue]];
NSDate * _date = [calendar dateFromComponents:components];但是,当day = 24,month = 8时, _date 会输出以下信息:



< ,year = 2011:


0168-07-25 04:56:02 +0000




我必须做一些可怕的错误,但我不知道什么。

解决方案

您的代码中有错字:(最后一行应该是 setYear:

  [components setDay:[day intValue] 
[components setMonth:[month intValue]];
[components setYear:[year intValue]];


I'm trying to generate a NSDate from a month day and year (all in integer format).

Right now my attempt is such:

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
NSNumber *day = [dataSource valueForKey:@"day"];
NSNumber *month = [dataSource valueForKey:@"month"];
NSNumber *year = [dataSource valueForKey:@"year"];
[components setDay:[day intValue]];
[components setMonth:[month intValue]];
[components setMonth:[year intValue]];
NSDate *_date = [calendar dateFromComponents:components];

However, _date outputs the following when day = 24, month = 8, year = 2011:

0168-07-25 04:56:02 +0000

I must be doing something horribly wrong, but I have no idea what. Anyone know what might be going on?

解决方案

You have a typo in your code: (last line should be setYear:)

 [components setDay:[day intValue]];
 [components setMonth:[month intValue]];
 [components setYear:[year intValue]];

这篇关于从日,月和年生成NSDate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆