【发布时间】:2013-05-26 14:55:25
【问题描述】:
很抱歉,如果以前有人问过这个问题,但我做了很多检查,但似乎找不到答案。 :(
我有一个字符串“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 进行比较时,我遇到了问题。有任何想法吗?
【问题讨论】:
-
为什么是“无格式”,这是什么意思?最简单(到目前为止)的方法是使用 NSDateFormatter。
-
(而且 NSDate 对象没有“格式”——它们是纯时间。)
-
(我怀疑这是你的困惑。你总是可以使用为 NSDate 定义的方法比较两个 NSDate 对象。它们的打印方式与内部表示无关。)
-
是的 - 我很困惑 ;) 请参阅上面的 m 编辑...也许这可以帮助你们了解我在哪里。对不起,如果我一无所知。我有点,这就是为什么我要寻求帮助! :) 我已经通过弄清楚它编写了整个应用程序,但最后一点我不能一起破解。 :(
-
你没有定义你的“问题”是什么。可能与时区有关——当您使用 NSDateFormatter 时,假定当前时区,除非日期指定了时区。你的有,但你不是用那种格式读的。日期格式模式定义为here。您需要“yyyy-MM-dd HH:mm:ss Z”来读取该格式。
标签: ios nsstring nsdate nsdateformatter