从NSDateFormatter获取错误的时间

时间:2014-05-27 13:55:24

标签: ios nsdate

当我尝试从文本字段获取日期和时间的值时,我在控制台上得到了错误的值。日期和时间是两个文本字段

NSString *datestring = self.date.text;
NSString *timestring = self.time.text;
NSString *combined = [NSString stringWithFormat:@"%@ %@",datestring,timestring];
NSLog(@"%@",combined);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd yyyy HH:mm:ss"];
NSDate *dates = [dateFormat dateFromString:combined];

NSLog(@"%@",dates);

2 个答案:

答案 0 :(得分:1)

不要依赖NSDate description方法来提供您想要的日期,它实际上只是用于调试。而是使用NSDateFormatter方法stringFromDate:

NSString *combinedDateString = @"may 2 2000 02:00 AM";
NSLog(@"combinedDateString: %@", combinedDateString);

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd yyyy hh:mm aa"];
NSDate *date = [dateFormat dateFromString:combinedDateString];

NSString *recoveredDateString = [dateFormat stringFromDate:date];
NSLog(@"recoveredDateString: %@", recoveredDateString);

NSLog输出:

  

combinedDateString:may 2 2000 02:00 AM
  recoverDateString:2000年5月2日02:00 AM

根据需要选择不同的显示格式。

注意:“HH”表示24小时,“hh”表示12小时时间。

请参阅ICU Formatting Dates and Times了解日期格式。

答案 1 :(得分:0)

你的格式化程序错误,必须是:

[dateFormat setDateFormat:@"MMMM dd yyyy hh:mm aa"];

您已经开设了一个主题: I didn't get correct time when using time formatter