1

我的字符串是这样的, 2012-12-08 17:00:00.0. 现在我正在尝试使用 NSDate 格式化程序从这个字符串中检索日期。我的代码是

NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-dd-MM hh:mm:ss"]; 
NSDate *date1 = [df dateFromString:@"2012-12-08 17:00:00.0"];
NSLog(@"%@ %@",date1);
[df release];

但我得到的只是空值..

我已经尝试了几种类型的 dateFormatter,例如yyyy/mm/dd hh:mm:ss,,YYYY-DD-MM HH:MM:SS.. 但仍然没有用.. 任何建议将不胜感激。

4

4 回答 4

1

假设您只是错误地在帖子中放置了一个空字符串文字,并且您的实际日期如您的帖子中所述,您需要使用HH而不是hh解析小时系统中的 24 小时制。您还需要添加.S到格式字符串以解析时间字符串的最后一个零:

NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-dd-MM HH:mm:ss.S"];
//                 here -------^^       ^------ and here
NSDate *date1 = [df dateFromString:@"2012-12-08 17:00:00.0"];
NSLog(@"%@",date1);

这会产生预期的输出(小时的差异是由于时区差异造成的):

2012-08-12 21:00:00 +0000
于 2012-08-21T10:26:44.060 回答
1

秒后有一个持续时间间隔,并且您在 dateformatter 输入中错过了 strDate 。

NSString *strDate = @"2012-12-08 17:00:00.0";
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-dd-MM hh:mm:ss.S"]; 
NSDate *date = [df dateFromString:strDate];// formatter format
NSLog(@"%@ %@",date);
[df release];
于 2012-08-21T10:44:11.227 回答
0

做这个:

NSString *strDate = @"2012-12-08 17:00:00.0";
NSDateFormatter *df=[[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-dd-MM HH:mm:ss.S"]; 
NSDate *date1 = [df dateFromString:strDate];// forgot to add valid string for according to date formatter format
NSLog(@"%@",date1);
[df release];
于 2012-08-21T10:25:32.437 回答
0
NSDateFormatter *dateformat=[[NSDateFormatter alloc]init];
[dateformat setDateFormat:@"dd/MM/yyyy hh:mm:ss"];
NSDate *today = [NSDate date];
NSString *currentDate=[dateformat stringFromDate:today];
NSLog(@"PrintToday Date is %@ ",currentDate);

NSDate *date1 = [df dateFromString:@""];

您需要在上面的行中传递字符串

于 2012-08-21T10:26:10.410 回答