日历文本标签不会更新
Calendar text label will not Update
datePicker.addTarget(self, action: #selector(datePickerChanged(datePicker:)), for: UIControlEvents.valueChanged)
dateFormat()
} //this works
func dateFormat() {
let today = NSDate()
let dateFormatter = DateFormatter()
let short = DateFormatter.Style.short
dateFormatter.dateStyle = short
dateFormatter.dateFormat = "MM-dd-YYYY"
let startDate = dateFormatter.string(from: datePicker.date)
dateLbl.text = startDate
//this works but datePicker date when moved will not update
let thirtyDays = NSCalendar.current.date(byAdding: Calendar.Component.day,value: 30, to: today as Date)
let tomorrowSixty = dateFormatter.string(from: thirtyDays!)
sixtyDay.text = tomorrowSixty
}
func datePickerChanged(datePicker:UIDatePicker){
dateFormat()
}
}
在Swift 3 中,如果使用Date
和Calendar
而不是NSDate
和NSCalendar
则更好。
现在,如果您想将 sixtyDay
标签设置为 datePicker 日期 30 天之后的日期,那么您需要使用 datePicker.date
和 date(byAdding:)
而不是今天的日期。
func dateFormat() {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let startDate = dateFormatter.string(from: datePicker.date)
dateLbl.text = startDate
//this works but datePicker date when moved will not update
let thirtyDays = Calendar.current.date(byAdding: .day, value: 30, to: datePicker.date)
let tomorrowSixty = dateFormatter.string(from: thirtyDays!)
sixtyDay.text = tomorrowSixty
}
func datePickerChanged(datePicker:UIDatePicker){
dateFormat()
}
注意: 如果您设置 dateFormat
和 DateFormatter
那么不需要设置 dateStyle
和 DateFormatter
正确的年份格式是 yyyy
而不是 YYYY
.
datePicker.addTarget(self, action: #selector(datePickerChanged(datePicker:)), for: UIControlEvents.valueChanged)
dateFormat()
} //this works
func dateFormat() {
let today = NSDate()
let dateFormatter = DateFormatter()
let short = DateFormatter.Style.short
dateFormatter.dateStyle = short
dateFormatter.dateFormat = "MM-dd-YYYY"
let startDate = dateFormatter.string(from: datePicker.date)
dateLbl.text = startDate
//this works but datePicker date when moved will not update
let thirtyDays = NSCalendar.current.date(byAdding: Calendar.Component.day,value: 30, to: today as Date)
let tomorrowSixty = dateFormatter.string(from: thirtyDays!)
sixtyDay.text = tomorrowSixty
}
func datePickerChanged(datePicker:UIDatePicker){
dateFormat()
}
}
在Swift 3 中,如果使用Date
和Calendar
而不是NSDate
和NSCalendar
则更好。
现在,如果您想将 sixtyDay
标签设置为 datePicker 日期 30 天之后的日期,那么您需要使用 datePicker.date
和 date(byAdding:)
而不是今天的日期。
func dateFormat() {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let startDate = dateFormatter.string(from: datePicker.date)
dateLbl.text = startDate
//this works but datePicker date when moved will not update
let thirtyDays = Calendar.current.date(byAdding: .day, value: 30, to: datePicker.date)
let tomorrowSixty = dateFormatter.string(from: thirtyDays!)
sixtyDay.text = tomorrowSixty
}
func datePickerChanged(datePicker:UIDatePicker){
dateFormat()
}
注意: 如果您设置 dateFormat
和 DateFormatter
那么不需要设置 dateStyle
和 DateFormatter
正确的年份格式是 yyyy
而不是 YYYY
.