首页 文章

如何使用特定格式将NSString转换为NSDate

提问于
浏览
0

我很抱歉,如果之前有人问过,但我做了很多检查,我似乎无法找到答案 . :(

我有一个字符串“2013-05-7 05:53:15 0000”,我想将它转换为NSDate,所以我可以将它与当前的日期和时间进行比较 . 我无法弄清楚如何做到这一点 . :(我成功转换它但它改变了字符串的外观,我希望它正好是2013-05-7 05:53:15 0000因为这是相同的格式我有其他NSDate项目 .

非常感谢任何和所有的帮助 .

我很迷惑 . ;)新的客观C.旧的VB /较旧的C程序员从80年代试图想出这个东西 . 谢谢您的帮助 . :)

我的代码看起来像这样:

NSDateFormatter *df1 = [[NSDateFormatter alloc] init];
//    [df1 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
    [df1 setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
    df1.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"EN"];
  NSDate *titemdate1 = [df1 dateFromString: itemdate];

我有两个约会 . 一个是应用程序运行的最后日期,另一个是我使用JSON下拉的项目的日期 . 我想比较两个日期(如上所述的字符串格式) . 当我做一个NSLog的字符串,他们看起来很完美,但当我转换为NSDate比较我有问题 . 有任何想法吗?

2 回答

  • 0

    尝试使用以下代码..

    -(NSDate*)dateFromJsonString:(NSString*)string
    {   
        NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
        [inputFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"];
        NSDate *xExpDate = [inputFormatter dateFromString:string];
    
        return xExpDate;
    }
    
  • 1

    首先,您应该知道,如果将dateString转换为date并执行日期的NSLog,它将返回GMT时间,这与大多数情况下的系统时间不同 . 因此,如果您以正确的格式获取字符串,那么日期格式化程序可能正常工作 . 要检查这一点,只需将格式化日期转换为字符串并打印输出 .

    NSLog(@"formatted date: %@",[df1 stringFromDate:titemdate1]);
    

    如果这没有改变任何东西并且输出仍然是错误的,请尝试更改格式化程序的格式 .

    [df1 setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"];
    

相关问题