-6

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

问题。我正在从 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];

但在这里我得到 res as nil

4

4 回答 4

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]; 
于 2013-05-16T12:45:50.813 回答
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]);
于 2013-05-16T12:47:48.753 回答
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

于 2013-05-16T12:52:20.720 回答
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);
于 2013-05-16T13:11:08.700 回答