Ios 需要有关NSDateFormatter的帮助吗

Ios 需要有关NSDateFormatter的帮助吗,ios,objective-c,nsdate,nsdateformatter,Ios,Objective C,Nsdate,Nsdateformatter,我只想要像“2014年10月29日”这样没有时间的日期,所以我这样做了 NSDateFormatter *df = [[NSDateFormatter alloc]init]; [df setDateFormat:@"dd-MM-yyyy"]; NSString *sDate = [df stringFromDate:date]; 如果我记录sDate我会得到完美的结果。但是我不想要NSString我想要date对象,在这里我所做的就是 NSDate *theDate = [df dateFr

我只想要像“2014年10月29日”这样没有时间的日期,所以我这样做了

NSDateFormatter *df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"dd-MM-yyyy"];
NSString *sDate = [df stringFromDate:date];
如果我记录
sDate
我会得到完美的结果。但是我不想要
NSString
我想要date对象,在这里我所做的就是

NSDate *theDate = [df dateFromString:sDate];
现在我得到了
2014-10-29 19:00:00+0000
我只想要
29-10-2014

这是您的解决方案

您正在nsdate中传递字符串sdata,而不是像这样传递nsdate对象

     NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"dd-MM-yyyy"];
    NSDate *now = [[NSDate alloc] init];

    NSDate *last=[dateFormat stringFromDate:now];
    NSLog(@"last==%@",last);

这是因为
-[NSDate description]
返回完整格式的日期

您可以滑动NSDate的
-(NSString*)说明{}
并返回所需内容。
请注意,这是一种非常糟糕的做法

#导入
@实施日期(自定义说明)
+(空)荷载
{
swizzleInstance(@selector(description)),
@选择器(说明m),
[UIViewController类],
[自我类];
}
静态void swizzleInstance(SEL originalSl、SEL swizzledSl、Class originalSl、Class swizzledCl){
方法originalMethod=class_getInstanceMethod(originalCl,originalSl);
方法swizzledMethod=class_getInstanceMethod(swizzledCl,swizzledSl);
方法交换实施(原始方法、swizzledMethod);
}
-(NSString*)说明
{
NSDateFormatter*df=[[NSDateFormatter alloc]init];
[df setDateFormat:@“dd-MM-yyyy”];
返回[df stringFromDate:self];
}
@结束

您需要使用NSCalender类来获取年、月和日期组件。NSDate类将始终以GMT表示

使用

也检查这篇文章。使用属性从NSDate检索值
以下是简单的代码

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSString* reqDate = [dateFormatter stringFromDate:[[NSDate alloc] init]];
NSLog(@"reqDate: %@",reqDate);//reqDate: 30-10-2014

你能告诉我你为什么想要这样的东西吗?当你想从NSDate获取日期或时间时,你可以制作一个dateformatter并简单地使用它。这方面有相关的帖子,例如:但他在问题中写道:我不想要字符串对象,我想要NSDate对象。我也在做同样的事情,但我的日期对象来自数组,它对我不起作用:(。
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *date = [NSDate date];
[calendar components:(NSDayCalendarUnit | NSMonthCalendarUnit) fromDate:date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSString* reqDate = [dateFormatter stringFromDate:[[NSDate alloc] init]];
NSLog(@"reqDate: %@",reqDate);//reqDate: 30-10-2014