【发布时间】:2015-03-17 09:43:25
【问题描述】:
问题更新:
我有一个应用程序,用户可以在其中添加一个新的研讨会,包括他从UIDatePicker 中选择的研讨会日期。之后,用户可以编辑研讨会的信息,包括更改日期。我想做的是以下几点:
1.读取用户在添加新工坊时从UIDatePicker中选择的时间。
2. 将日期转换为字符串并保存在数据库中。
3. 当用户想要编辑车间时,我应该从数据库中检索车间的日期并将其从字符串转换为NSDate。
4.将Edit界面中的UIDatePicker设置为我刚刚创建的NSDate。
我认为这听起来合乎逻辑。但是,它对我不起作用,我不知道为什么。这是代码:
在AddWorkshop.m 类中
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateStyle:NSDateFormatterMediumStyle];
//WSDate is a NSString variable
self.WSDate = [dateFormat stringFromDate:[sender date]];
在EditWorkshop.m 类中
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateStyle:NSDateFormatterMediumStyle];
NSDate *date1 = [df dateFromString: self.WSDate];
[self.datePicker setDate:date1];
问题是:
UIDatePicker日期不会更改为指定日期,它始终显示今天的日期。当我尝试 NSLog date1 和 self.WSDate 时,date1 的值总是少一天然后
self.WSDate的值我在 [UIDatePicker setDate: NSDate] 中传递的日期是否有特定格式?例如:它必须是“MMMM dd yyyy”或“mm-dd-yyyy”还是任何格式都可以?
【问题讨论】:
-
你能分享你在
UIDatePicker中设置date1的代码吗? -
我更新了帖子..代码是[self.datePicker setDate:date1];
-
为什么要将日期转换为字符串,为什么不能像核心数据一样将其存储为时间戳
-
关于问题 1,可能是您以错误的方法设置日期或未在 UI 线程上设置日期。关于问题2,为什么要在
NSDate和NSString之间来回转换?如果可能,您应该存储NSDate本身。这可能是您的NSDateFormatter的时区问题。 -
因为我习惯于将日期保存在数据库中的字符串中。以前从未尝试过时间戳。尽管如此,这是否解释了 UIDatePicker 的奇怪行为?
标签: ios objective-c nsdate uidatepicker