0

希望你会做得很好。

我在标签上有一个日期(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输出= November 14,2012

temp's输出= 2012-11-14

myDate's输出= 2012-06-13 19:00:00 +0000

myDate还给了我时间和格林威治标准时间设置以及日期后 1 天,即 13 而不是 14,我真的不想得到。我只需要日期。

我的要求是获得myDate 2012-11-14的输出

感谢您在期待中的所有帮助。

4

1 回答 1

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];
}
于 2012-11-14T04:48:49.560 回答