【问题标题】:NSDateFormatter dateFromString returns a previous date from a stringNSDateFormatter dateFromString 从字符串返回上一个日期
【发布时间】:2014-04-11 09:25:54
【问题描述】:

我想将用户输入的日期字符串与当前日期进行比较。我的要求是,用户输入的日期应该始终是未来的日期。 为此,我将字符串值转换为日期并与 [NSDate date] 进行比较。但是dateFromString 总是返回用户输入日期之前的日期。 这是我的代码:

 NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MM/dd/yy"];
    NSDate *myDate=[dateFormatter dateFromString:@"04/11/2014"];
    NSComparisonResult result = [(NSDate*)[NSDate date] compare:myDate];
    NSLog(@"myDate is %@",myDate);
    NSLog(@"currrent date is %@",[NSDate date]);
    if(result==NSOrderedDescending)
    {
        NSLog(@"the date entered is past date");
    }

以下是输出:

myDate is 2014-04-10 18:30:00 +0000
currrent date is 2014-04-11 09:23:28 +0000
the date entered is past date

如何将字符串日期与当前日期进行比较。 (我的时区是 IST- GMT + 5:30)。

【问题讨论】:

  • 确保使用正确的时区,并注意日期对象的 NSLog 将始终以 GMT 打印...

标签: cocoa nsdate nsdateformatter


【解决方案1】:

不用担心输出。如果您添加时区,您应该注意到这些日期是正确的,并且在这种情况下比较可以正常工作。可能您需要比较忽略时间。你可以在这里看到:https://stackoverflow.com/a/1854919/2317866

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    相关资源
    最近更新 更多