0

很抱歉,如果以前有人问过这个问题,但我做了很多检查,似乎找不到答案。:(

我有一个字符串“2013-05-7 05:53:15 +0000”,我想将其转换为 NSDate,以便将其与当前日期和时间进行比较。我不知道该怎么做。:( 我成功转换了它,但它改变了字符串的外观,我希望它完全是 2013-05-7 05:53:15 +0000 ,因为这与我拥有其他 NSDate 项目的格式相同。

非常感谢任何和所有帮助。

我很困惑。;) 目标 C 的新手。 80 年代的旧 VB / 旧 C 程序员试图弄清楚这些东西。谢谢您的帮助。:)

我的代码如下所示:

    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 进行比较时,我遇到了问题。有任何想法吗?

4

2 回答 2

1

尝试使用下面的代码..

-(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;
}
于 2013-05-31T04:20:24.720 回答
0

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

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

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

[df1 setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"];
于 2013-06-07T09:01:42.437 回答