无法从NSString获取NSDate

时间:2011-06-07 05:51:39

标签: iphone objective-c nsstring nsdate

我可以使用以下代码获取表示PST中当前日期和时间的NSString。

//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];

编辑:

但是以下从NSString获取NSDate的代码不符合我的目的。

//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”似乎为空。

有没有人可以帮助我解决从NSString获取NSDate的问题。 提前完成。

3 个答案:

答案 0 :(得分:1)

NSDateFormatter也有dateFromString:功能。

编辑:

//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);

答案 1 :(得分:0)

利用

[dateFormatter dateFromString:urString];

在您的情况下,urStringcurrentDateStr

答案 2 :(得分:0)

使用

 - (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);
}