【问题标题】:NSDate always show the same dateNSDate 总是显示相同的日期
【发布时间】:2013-06-06 12:50:23
【问题描述】:

我已经为此苦苦挣扎了好几个小时。我试图找出两个日期之间的不同月份。 开始日期与系统日期正确,但结束日期始终显示相同的日期2014-01-04 00:00:00,无论用户输入什么。 (并且 valuetosave 是用户输入的日期,我将其保存在 userdefaults 中,如果我在日志中看到它是正确的,例如字符串是 31/12/2014)。所以目前我总是得到 7 个月的事件用户选择的日期,例如 2014 年 12 月 31 日。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/YYYY"];
NSDate *endDate = [formatter dateFromString:valuetosave];
NSCalendar *gregorian = [[NSCalendar alloc]

                         initWithCalendarIdentifier:NSGregorianCalendar];

unsigned int unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *comps = [gregorian components:unitFlags fromDate:startDate  toDate:endDate options:0];
float months = [comps month]+1;

【问题讨论】:

  • 如果您阅读了您的问题,您能理解吗?我做不到。
  • 是的,请准确说出您想要什么以及您拥有什么

标签: ios objective-c nsdate


【解决方案1】:

你可以试试

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

仅通过更改 dateFormat 获得的月份为 19

【讨论】:

  • @Anudpas...你救了我的命,伙计...也很抱歉这个问题不完整,这想死我了:-)
【解决方案2】:

一年的格式化程序

YYYY - wrong
yyyy - right

改变它你的代码可以正常工作

更多详情请关注formatting

【讨论】:

    猜你喜欢
    • 2011-09-30
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多