我已经使用完成和取消按钮创建了一个自定义datePickerView .
- (id)initWithCoder:(NSCoder *)aDecoder{
if (self = [super initWithCoder:aDecoder]) {
}
return self;
}
-(void)setupWithMinimumDate:(NSDate *)minimumDate andMaximumDate:(NSDate *)maximumDate andTag:(NSInteger)tag{
viewToolbar.backgroundColor = [UIColor toolbarBackgroundColor];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.timeZone = [NSTimeZone localTimeZone];
datePicker.locale = [NSLocale currentLocale];
datePicker.minimumDate = minimumDate;
datePicker.maximumDate = maximumDate;
tagValue = tag;
}
-(IBAction)doneTapped:(id)sender{
[self.delegationListener didTapDone:datePicker.date andTag:tagValue];
}
-(IBAction)cancelTapped:(id)sender{
[self.delegationListener didTapCancel];
}
-(IBAction)datePickerValueChanged:(UIDatePicker *)sender{
NSLog(@"DATE = %@",sender.date);
datePicker.date = sender.date;
}
您在 datePickerValueChanged
中看到了Log语句 . 当我保持在最小和最大日期之内时,它会让我回到正确的日期 . 但是当我在我的最小或最大日期之上或之下滚动时,它总是返回一个比所选日期提前一天的日期 .
我知道当我使用 NSDateFormatter
格式化日期时,它会返回正确的日期字符串 . 但问题是,我将从datePicker收到的日期存储在Realm对象上 .
现在,我发送到需要使用UTC时区进行日期格式化的网络服务器的领域对象 . 所以我总是发送一天前的日期 .
我希望它有点清楚,如果没有请问!
1 回答
当我检查你的代码时你是
NSDate
的NSDate
对象,但NSDate
日志不确定返回正确的NSDate
因为NSDate
返回GMT时区的当前时间所以以下是将GTM时区进行位计算到当地时区的代码:从here我被牵连到我的项目中
其他方法是你可以将
NSDate
in转换为正确的dateformate和nslog,它将显示正确的日志,如下所示:因此您可以将日期存储为字符串并将其发送到您的后端,希望对您有所帮助