【问题标题】:Converting Date to proper format when the Value obtained from the Db is in format 2012-07-13 00:00:00.0 [duplicate]当从 Db 获得的值的格式为 2012-07-13 00:00:00.0 [重复] 时,将日期转换为正确的格式
【发布时间】:2013-05-16 12:40:30
【问题描述】:

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

问题。我正在从 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 的 res 。

【问题讨论】:

  • 我刚刚搜索了你的问题,看看我得到了什么,google.co.in/…
  • @rptwsthi :请在投票之前阅读我的问题的全部内容。

标签: objective-c cocoa-touch nsdate nsdateformatter


【解决方案1】:

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

这行得通:

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

【讨论】:

  • 现在我希望输出类型为 MM/dd/yy 格式的字符串。为了得到它我应该写另一个 dateformatter 吗?
  • 改一下格式就行了,现在检查我的代码
  • 获得 res 后我正在做 NSDateFormatter *df2=[NSDateFormatter new]; [df2 setDateFormat:@"MM/dd/yy"]; NSString *finalVal=[df2 stringFromDate:res]; .这是正确的吗?
  • @Dharmbir Choudhary:但有时当数据库的输出是 2013-05-16 16:29:52.072 时,我又是零。
  • @Raj 在这种情况下,您需要更改此类字符串的格式。首先确定你会得到什么样的字符串字符串格式。
【解决方案2】:

用这个

 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

【讨论】:

  • @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 ,因此在我的情况下它给出了 nil
  • 请在您对 HH 的回答中更改 hh 。我会接受的
【解决方案3】:

试试这个:

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

【讨论】:

  • 如果有效,那么您应该勾选这些有效答案中的任何一个!
【解决方案4】:

试试这个

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

【讨论】:

    猜你喜欢
    • 2012-03-22
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2018-03-23
    相关资源
    最近更新 更多