获得NSDate没有时间返回零

时间:2014-08-13 07:17:12

标签: ios nsdate nsdateformatter

我检查过很多关于将日期格式转换为其他格式的代码,但它总是返回nil.I想要当前日期和时间。

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
 [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
 NSString *dateAsString = [formatter stringFromDate:[NSDate date]];
 [formatter setDateFormat:@"yyyy-MM-dd"];
 NSDate *newDate  =[formatter dateFromString:dateAsString];

3 个答案:

答案 0 :(得分:1)

试试这个希望这会解决你的问题

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];

NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];

NSDate *now = [[NSDate alloc] init];

NSString *theDate = [dateFormat stringFromDate:now];
NSString *theTime = [timeFormat stringFromDate:now];

NSLog(@"\n"
      "theDate: |%@| \n"
      "theTime: |%@| \n"
      , theDate, theTime);

答案 1 :(得分:1)

这都是因为您的dateAsString(format:"yyyy-MM-dd hh:mm:ss")与新的formatString("yyyy-MM-dd")不匹配。

答案 2 :(得分:-1)

如果您需要解析日期字符串,您再次采用的方法取决于您想要完成的任务。如果你想解析用户的输入,你通常应该使用样式常量来匹配他们的期望。这是Data Formatting Guide