我搜索了帖子,但没有找到我可以使用的东西......
我尝试做的是:我想在CoreData中保存一个日期(作为NSDate),但没有像+0000这样的时区标识符。原因是,我稍后使用日期作为TableView中的排序路径/标题,结果看起来不太好用+0000。 我无法从CoreData转换日期,因为我使用" titleForHeader"与NSFetchedResultsController一起使用,所以我没有机会事先转换它... 或者甚至可以使用" dd-MM-yyyy / HH:mm"等格式保存NSDate。但仍然是NSDate()? 我想在Swift中做所有这些!
感谢您的帮助......
答案 0 :(得分:3)
NSDate不包含任何时区信息,您需要将NSDate保存在Core Data中,然后使用NSDateFormatter对其进行格式化以便显示。
答案 1 :(得分:1)
如果没有它,就无法保存NSDate。只有当你要保存为NSString时,在这种情况下你可以使用这样的东西:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat: @"yyyy-MM-dd HH:mm:ss"];
OR
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
然后将字符串保存为:
[dateFormatter stringFromDate:YOUR_NSDATE_VAR];
干杯。
答案 2 :(得分:0)
这对我有用:
NSDate *date = [[NSUserDefaults standardUserDefaults] objectForKey:@"MaxDate"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSString *stringFromDate = [formatter stringFromDate:date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat =@"yyyy-MM-dd'T'HH:mm:ss";
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:stringFromDate];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *newDateString = [dateFormatter stringFromDate:dateFromString];
NSLog(@"%@", newDateString);