我已经完成了所有类似的问题,不幸的是非解决我的问题所以我问过它。我需要我的函数返回一个NSDate
和唯一的日期,但我的返回值也包含时间,我已经尝试了setTimeStyle noStyle以及我能提出的每个可能的解决方案,这里是代码:
-(NSDate*)stringToDate{
NSString *dateString = @"01-02-2010";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *date;
date = [dateFormatter dateFromString:dateString];
NSLog(@"%@",date);
return date;
}
输出为:2010-01-31 16:00:00 +0000
我想要的是什么:2010-01-31
答案 0 :(得分:11)
这不起作用,当您打印NSDate对象时,它将打印整个日期。
从日期获得字符串表示的方式是使用NSDateFormatter
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat = @"dd-MM-yyyy";
NSLog(@"%@", [format stringFromDate:[NSDate new]]);
如果您愿意,可以将其放在NSDate的类别中。
答案 1 :(得分:0)
抓取前10个字符的子字符串。查看NSMakeRange和subStringWithRange。
NSString* dateOnlyAsString = [[[NSDate date] description] substringWithRange:NSMakeRange(0, 10)];
答案 2 :(得分:0)
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDate *now = [[NSDate alloc] init];
NSString *theDate = [dateFormat stringFromDate:now];
NSLog(@"%@",theDate);
答案 3 :(得分:0)
NSDate 始终是日期和时间的组合。你不能改变这种格式。但如果您想要一个提到的输出,则必须将其转换为NSString
只需添加以下代码
NSLog(@"%@", [dateFormatter stringFromDate:date]);
答案 4 :(得分:0)
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd-MM-yyyy"];
NSDate *convertedDate = [df dateFromString:datestring1];
NSLog(@"convertedDate....%@",convertedDate);
[df setDateFormat:@"dd-MM-yyyy"];
NSString *date1= [df stringFromDate:convertedDate];
答案 5 :(得分:0)
UIDatePicker *datepicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0, 250, 320, 60)];
datepicker.datePickerMode = UIDatePickerModeDate;
NSDate *date = datepicker.date;
NSDate *date1 = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
// convert it to a string
NSString *dateString = [dateFormat stringFromDate:date1];
NSLog(@"date %@",dateString);
datelabel.text =dateString;
NSLog(@"text in the datelabel.text is %@",datelabel.text);
尝试通过以下方式使用它的工作正常。如果它不起作用,请告诉我。