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

时间:2013-05-16 12:40:31

标签: objective-c cocoa-touch nsdate nsdateformatter

我知道这个话题有很多问题。但我没有得到适当的解决方案

问题。我正在从db中检索Date,我将输出作为

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

但在这里我得到的是nil

4 个答案:

答案 0 :(得分:2)

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

这有效:

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

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

使用此

 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

答案 3 :(得分:0)

试试这个

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