【发布时间】:2016-12-17 10:14:07
【问题描述】:
我正在尝试将 NSString 转换为 NSDate,然后将其存储在 Core Data 上。我将时区添加到 NSDateFormatter 仍然返回错误的输出。并以不同的格式存储在 Core Data 中。
NSString *dateString=@"2015-09-17 01:06:44";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
dateFormatter.locale = [NSLocale currentLocale];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date_f = [dateFormatter dateFromString:dateString];
NSLog(@"date string %@",dateString);
NSLog(@"date %@",date_f);
NSManagedObject *events=[[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:app.context];
[events setValue:date_f forKey:@"start_date"];
控制台输出是
date string 2015-09-17 01:06:44
date 2015-09-16 19:36:44 +0000
数据存储在Core Data中,如下所示
start_date = "September 17, 2015";
谢谢。
【问题讨论】:
-
您的时区是
UTC+05:30不是吗?NSLog以 UTC 格式打印日期。 -
是的,它的 UTC+05:30
-
date 2015-09-17 01:06:44 +0000现在它的打印正确...但是在将其存储在核心数据上时,格式为September 17, 2015 -
如果Core Data属性的类型是
NSDate,那么显示的格式就没有关系,因为NSDate实际上只是一个Double的值。 -
但它没有以所需的格式保存......它没有保存时间,只保存了日期。!!
标签: ios objective-c iphone core-data