使用 NSDate 将字符串转换为日期,我的日期更改为 6 个月前
Using NSDate to convert a string to a date, my dates are changed to 6 months back
我有一个网络服务可以显示一些日期,在我的 iOS 应用程序中,我正在将 UTC 日期转换为本地日期。我已经验证网络服务正在吐出 UTC 日期并且 iOS 将其识别为 UTC。
将网络服务 JSON 转换为 NSMutableArray
后,设置断点并键入 po [listOfTasks valueForKey:@"LASTEMAILDATE"]
结果
<__NSArrayI 0x157068c80>(
,
7/28/2016 2:01:41 PM,
7/28/2016 2:01:39 PM,
7/28/2016 2:01:42 PM
)
现在,我做一个 for
循环
for (int i = 0; i < listOfTasks.count; i++) {
FireStormCategories *cat = [listOfTasks objectAtIndex:i];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"mm/dd/yyyy hh:mm:ss a"];
NSDate *date = [df dateFromString:cat.LASTEMAILDATE];
MNLog(@"%@ was changed to %@", cat.LASTEMAILDATE, [df stringFromDate:date]);
}
那个日志吐出来
was changed to (null)
7/28/2016 2:01:41 PM was changed to 01/28/2016 02:01:41 PM (expecting: 7/28/2016 10:01:41 AM )
7/28/2016 2:01:39 PM was changed to 01/28/2016 02:01:39 PM (expecting: 7/28/2016 10:01:39 AM )
7/28/2016 2:01:42 PM was changed to 01/28/2016 02:01:42 PM (expecting: 7/28/2016 10:01:42 AM )
我的第一个对象没有日期,(null)
是预期的,但是,这是我感到困惑的地方。我的其他 3 个日期更改为反映 6 个月前的日期,时间应该回到 5 (EST)。
您使用的月份格式有误。 MM
用于月份,mm
用于分钟
[df setDateFormat:@"mm/dd/yyyy hh:mm:ss a"];
应该是
[df setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
您得到的 01
是从日期算起的分钟数。
我有一个网络服务可以显示一些日期,在我的 iOS 应用程序中,我正在将 UTC 日期转换为本地日期。我已经验证网络服务正在吐出 UTC 日期并且 iOS 将其识别为 UTC。
将网络服务 JSON 转换为 NSMutableArray
后,设置断点并键入 po [listOfTasks valueForKey:@"LASTEMAILDATE"]
结果
<__NSArrayI 0x157068c80>(
,
7/28/2016 2:01:41 PM,
7/28/2016 2:01:39 PM,
7/28/2016 2:01:42 PM
)
现在,我做一个 for
循环
for (int i = 0; i < listOfTasks.count; i++) {
FireStormCategories *cat = [listOfTasks objectAtIndex:i];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"mm/dd/yyyy hh:mm:ss a"];
NSDate *date = [df dateFromString:cat.LASTEMAILDATE];
MNLog(@"%@ was changed to %@", cat.LASTEMAILDATE, [df stringFromDate:date]);
}
那个日志吐出来
was changed to (null)
7/28/2016 2:01:41 PM was changed to 01/28/2016 02:01:41 PM (expecting: 7/28/2016 10:01:41 AM )
7/28/2016 2:01:39 PM was changed to 01/28/2016 02:01:39 PM (expecting: 7/28/2016 10:01:39 AM )
7/28/2016 2:01:42 PM was changed to 01/28/2016 02:01:42 PM (expecting: 7/28/2016 10:01:42 AM )
我的第一个对象没有日期,(null)
是预期的,但是,这是我感到困惑的地方。我的其他 3 个日期更改为反映 6 个月前的日期,时间应该回到 5 (EST)。
您使用的月份格式有误。 MM
用于月份,mm
用于分钟
[df setDateFormat:@"mm/dd/yyyy hh:mm:ss a"];
应该是
[df setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
您得到的 01
是从日期算起的分钟数。