Objective c 当从数据库获得的值为2012-07-13 00:00:00.0格式时,将日期转换为正确格式

Objective c 当从数据库获得的值为2012-07-13 00:00:00.0格式时,将日期转换为正确格式,objective-c,cocoa-touch,nsdate,nsdateformatter,Objective C,Cocoa Touch,Nsdate,Nsdateformatter,我知道在这个话题上有很多问题。但是我没有找到一个合适的解决方案 问题。我正在从数据库中检索日期,结果如下 as2012-07-13 00:00:00.0 我得到的是字符串格式的输出。我想要字符串类型的结果 格式MM/dd/yyyy NSString *dateStr=@"2012-07-13 00:00:00.0"; NSDateFormatter *df=[NSDateFormatter new]; [df setDateFormat:@"yyyy-MM-dd"]; NSDate *re

我知道在这个话题上有很多问题。但是我没有找到一个合适的解决方案

问题。我正在从数据库中检索
日期
,结果如下

as
2012-07-13 00:00:00.0

我得到的是字符串格式的输出。我想要字符串类型的结果

格式
MM/dd/yyyy

NSString *dateStr=@"2012-07-13 00:00:00.0";

NSDateFormatter *df=[NSDateFormatter new];

[df setDateFormat:@"yyyy-MM-dd"];

NSDate *res=[df dateFromString:dateStr];

但是这里我得到的res是
nil

您需要告诉格式化程序日期的整个格式,包括小时、分钟

这项工作:

NSString *dateStr=@"2012-07-13 00:00:00.0";

NSDateFormatter *df=[NSDateFormatter new];

[df setDateFormat:@"yyyy-MM-dd hh:mm:ss.S"];

NSDate *res=[df dateFromString:dateStr];

[df setDateFormat:@"MM/dd/yyyy"];

NSString *myString =[df stringFromDate:res]; 
试试这个:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.s"];
NSDate *aDate=[formatter dateFromString:[NSString stringWithFormat:@"%@", @"2012-07-13 00:00:00.0"]];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
NSLog(@"%@", [dateFormatter stringFromDate:aDate]);
用这个

 NSString *dateStr=@"2012-07-13 00:00:00.0";
 NSDateFormatter *df = [[NSDateFormatter alloc] init];
 [df setDateFormat:@"yyyy-MM-dd HH:mm:ss.S"];  

  NSDate *date = [df dateFromString: dateStr]; 

  [df setDateFormat:@"MM/dd/yyyy"];

  NSString *convertedString = [df stringFromDate:date]; 
  NSLog(@"Your String : %@",convertedString);
输出: 您的字符串:07/13/2012

    NSString *dateStr=@"2012-07-13 00:00:00.0";
    NSDateFormatter *dateFormatter=[NSDateFormatter new];
    [dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss.S"];
    NSDate *dateObj=[dateFormatter dateFromString:dateStr];
    [dateFormatter setDateFormat:@"MM/dd/yyyy"];
    NSString *myString = [dateFormatter stringFromDate:dateObj];
    NSLog(@"%@",myString);

现在我希望输出的类型为字符串,格式为MM/dd/yy。为了得到它,我应该写另一个dateformatter吗?只需更改它的格式,在获得res后立即检查我的代码我正在做NSDateFormatter*df2=[NSDateFormatter new];[df2 setDateFormat:@“MM/dd/yy”];NSString*finalVal=[df2 stringFromDate:res]。这是正确的吗?@Dharmbir Choudhary:但有时当db的输出为2013-05-16 16:29:52.072时,我再次输入nil@Raj在这种情况下,您需要更改这种类型字符串的格式。首先确定您将得到什么样的字符串格式。@Raj您知道日期字符串的最重要值是@“2012-07-13 00:00:00.0”。所以它会给出这个输出。你明白吗?但是有时候当db的输出是2013-05-16 16:29:52.072时,我又得到了零。@Raj看到这个格式[dateFormatter setDateFormat:@“yyyy-MM-dd HH:MM:ss.SSS”];这个很好用。是的,这个很好用。我使用的是“yyyy-MM-dd hh:MM:ss.SSS,因此它给出了零,在我的情况下,请将你的答案中的hh改为hh。我会接受它。我刚刚在谷歌上搜索了你的问题,看看我得到了什么,@rptwsthi:请在投票之前阅读我问题的全部内容。如果有效,那么你应该勾选这些有效答案中的任何一个!