NSString转换为NSDate和NSDate不提供日期

时间:2012-11-14 04:43:30

标签: objective-c nsstring ios6 nsdate xcode4.5

希望你能做得好。

我在标签上有一个日期(2012年11月14日),这意味着

Label.text returns the string "November 14, 2012"

现在我想要的是将此字符串转换为NSDate。我是通过使用此代码段完成的。

formator.dateStyle=NSDateFormatterShortStyle;
formator.dateFormat=@"yyyy-MM-dd";
NSString *temp=[NSString stringWithFormat:@"%@",[formator stringFromDate:myDatePicker.date]];
NSLog(@"%@",temp);
NSDate *myDate=[formator dateFromString:temp];
NSLog(@"%@",myDate);

myDatePicker.date {输出{1}}

= November 14,2012 {输出{1}}

temp's {输出{1}}

= 2012-11-14也给了我时间和GMT设置以及落后1天,即13而不是14,我真的不想得到。我只需要约会。

我的要求是获得myDate's 2012-11-14

的输出

感谢您对预期的所有帮助。

1 个答案:

答案 0 :(得分:1)

试试这个,让我知道:

NSDate *dateTemp = [[NSDate alloc] init];
NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init];
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];

[dateFormat1 setDateFormat:@"MM/dd/yy"];
[dateFormat2 setDateFormat:@"yyyy-MM-dd"];

dateTemp = [dateFormat1 dateFromString:newInvoice.date];
newDate.date = [dateFormat2 stringFromDate:dateTemp];

这会有所帮助:

-(NSDate *)dateWithOutTime:(NSDate *)datDate
    if( datDate == nil ) {
        datDate = [NSDate date];
    }
    NSDateComponents* comps = [[NSCalendar currentCalendar] components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:datDate];
    return [[NSCalendar currentCalendar] dateFromComponents:comps];
}