关于日期的字符串格式

时间:2018-11-07 15:58:35

标签: ios swift

此功能在点击日历日期时获取点击日期。 我想了解的是,例如,当我点击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。

1 个答案:

答案 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)