此功能在点击日历日期时获取点击日期。 我想了解的是,例如,当我点击2018/11/1时,我想获取字符串“ 2018/11/01”,但是我不知道该怎么做。你能告诉我吗?
func getDay(_ date:Date) -> (Int,Int,Int,String){
let tmpCalendar = Calendar(identifier: .gregorian)
let Component = tmpCalendar.component(.weekday, from: date)
let weekName = Component - 1
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "ja")
let year = tmpCalendar.component(.year, from: date)
let month = tmpCalendar.component(.month, from: date)
let day = tmpCalendar.component(.day, from: date)
return (year,month,day,formatter.shortWeekdaySymbols[weekName])
}
func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition){
let selectDay = getDay(date)
let scheduleForDate = "\(String(selectDay.0))/\(String(selectDay.1))/\(String(selectDay.2))"
print(scheduleForDate)
getStartScheduleDate(date: scheduleForDate)
tableView.reloadData()
}
顺便说一句,我正在使用的库是FSCalendar。
答案 0 :(得分:1)
使用DateFormatter
设置为所需的格式。
let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd"
let result = formatter.string(from: someDate)
但是使用这种格式向用户显示日期不是一个好主意。这是模棱两可的。是11月1日还是1月11日?
最好使用日期样式,以便在给定区域设置的情况下以用户期望的格式向用户显示日期。
let formatter = DateFormatter()
formatter.dateStyle = .short
let result = formatter.string(from: someDate)
或至少本地化特定格式:
let formatter = DateFormatter()
formatter.setLocalizedDateFormatFromTemplate("yyyyMMdd")
let result = formatter.string(from: someDate)