невозможно получить NSDate из NSString - PullRequest
0 голосов
/ 07 июня 2011

Я могу получить NSString, представляющую текущую дату и время в PST, используя следующий код.

//get current date and time
    NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"America/Los_Angeles"];    
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MM/dd/yy HH:mm:ss zzz"];
    [dateFormatter setTimeZone:timeZone];
    NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    [dateFormatter setLocale:enUSPOSIXLocale];
    [enUSPOSIXLocale release];
    NSDate *date = [NSDate date];
    NSString *currentDateStr = [dateFormatter stringFromDate:date];
    NSLog(@"currentDateStr %@",currentDateStr);
    [dateFormatter release];

РЕДАКТИРОВАТЬ:

Но следующий код для получения NSDate из NSString не служит моей цели.

//get date from string
    NSDateFormatter* formatter2 = [[NSDateFormatter alloc] init];
    [formatter2 setDateFormat:@"MM/dd/yy HH:mm:ss"];
    NSDate *dt = [[NSDate alloc]init];
    dt = [formatter2 dateFromString:currentDateStr];
    NSLog(@"dt %@",dt);

"dt", по-видимому, является нулевым.

Может кто-нибудь помочь мне в решении этой проблемы получения NSDate от NSString.Спасибо заранее.

Ответы [ 3 ]

1 голос
/ 07 июня 2011

NSDateFormatter также имеет функцию dateFromString:.

EDIT:

//get date from string.
NSDateFormatter* formatter2 = [[NSDateFormatter alloc] init];

[formatter2 setDateFormat:@"MM/dd/yy HH:mm:ss zzz"];

NSDate *dt = [formatter2 dateFromString:currentDateStr];
NSLog(@"dt %@",dt);
0 голосов
/ 07 июня 2011

Использование

 - (NSString *)datePickerValueChangedd:(UIDatePicker*) datePicker{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 50, 68, 68)];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = NSDateFormatterMediumStyle;
label.text = [NSString stringWithFormat:@"%@",[df stringFromDate:datePicker.date]];

NSLog(@"I am inside the datePickerValueChanged   - - %@", label.text);
[df release];
globalVariable= label.text;
return (label.text);
}   
0 голосов
/ 07 июня 2011

Используйте

[dateFormatter dateFromString:urString];

В вашем случае urString - это currentDateStr

...