将整数转换为日期格式

时间:2013-10-17 20:58:31

标签: objective-c nsdate

我对objective-c很新,我将一个日期存储在sqlite表中作为整数,例如20131017(代表2013年10月17日)。我希望以2013年10月17日的格式向用户显示此内容,但是当我记录它时,我的代码会生成null。

毫无疑问,我缺少一些非常基本的东西 - 但对于我的生活,我看不到它。

以下是代码:

_fromDate.text = _startDate; //e.g.20131017 (representing Oct 17, 2013)

NSString *dateString =[NSString stringWithFormat:@"%d", [_fromDate.text intValue]];
NSLog(@"dateString: %@", dateString);// shows 20131017 ok

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMM dd, yyyy"];
NSDate *date = [dateFormat dateFromString:dateString];
NSLog(@"date: %@", date);  //produces a nil result

感谢任何帮助。 THX。

1 个答案:

答案 0 :(得分:2)

使用这段代码:

[dateFormat setDateFormat:@"MMM dd, yyyy"];
NSDate *date = [dateFormat dateFromString:dateString];
你说的是:

  1. 这是我的日期格式
  2. 将此字符串(我刚才告诉您的格式)转换为日期
  3. 但字符串不是那种格式,所以它不起作用。

    格式实际上是:@"yyyyMMdd"(或类似的东西,我没有规格可以提供)。

    你真的需要2种格式(和2种格式化程序)......

    1. 将存储的字符串转换为日期的格式
    2. 将日期转换为显示字符串的格式(这是您已经拥有的格式)