我很抱歉,如果以前曾经问过这个,但我做了很多检查,我似乎无法找到答案。 :(
我有一个字符串“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比较我有问题。有任何想法吗?
答案 0 :(得分: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;
}
答案 1 :(得分:0)
首先,您应该知道,如果将dateString转换为date并执行日期的NSLog,它将返回GMT时间,这与大多数情况下的系统时间不同。因此,如果您以正确的格式获取字符串,那么日期格式化程序可能正常工作。要检查这一点,只需将格式化日期转换为字符串并打印输出。
NSLog(@"formatted date: %@",[df1 stringFromDate:titemdate1]);
如果没有改变任何内容且输出仍然错误,请尝试更改格式化程序的格式。
[df1 setDateFormat:@"yyyy-MM-dd HH:mm:ss ZZZ"];