gpt4 book ai didi

ios - 是否可以格式化 UIDatePicker?

转载 作者:行者123 更新时间:2023-11-28 11:38:03 25 4
gpt4 key购买 nike

我想知道是否可以格式化UIDatePicker

我希望在日期之前有工作日作为字符串,例如“Monday 01.01.2018”。我已经看到很多次了,但我什么也没找到。

目前只显示日期,前面没有工作日。

我到处搜索,但没有找到答案。

最佳答案

如果您只显示日期并且还想查看星期几,您可能必须实现自己的 UIPickerView

例如,这将创建一个单组件选择器。而且,因为根据你住的地方,01.02.2019 可能被解释为 1 月 2 日或 2 月 1 日,我可能会建议使用像 EEEMMMdyyyy 这样简洁、本地化且明确的本地化格式:

class ViewController: UIViewController {

@IBOutlet weak var pickerView: UIPickerView!

private var startDate: Date!
private var endDate: Date!

private let formatter: DateFormatter = {
let formatter = DateFormatter()
formatter.setLocalizedDateFormatFromTemplate("EEEMMMdyyyy")
return formatter
}()

override func viewDidLoad() {
super.viewDidLoad()

configurePicker()
}

func configurePicker() {
// you can also hook up delegate and datasource in IB if you prefer

pickerView.dataSource = self
pickerView.delegate = self

// set the range of dates to whatever is appropriate for your app

let now = Date()
startDate = now
endDate = Calendar.current.date(byAdding: .year, value: 1, to: now)
}

}

extension ViewController: UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return Calendar.current.dateComponents([.day], from: startDate, to: endDate).day!
}
}

extension ViewController: UIPickerViewDelegate {
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
let date = Calendar.current.date(byAdding: .day, value: row, to: startDate)!
return formatter.string(from: date)
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let date = Calendar.current.date(byAdding: .day, value: row, to: startDate)!
print(formatter.string(from: date))
}
}

这会产生(对于美国用户):

enter image description here

现在,如果您想要同时拥有自定义日期字符串格式和多个组件(例如,日、月和年作为单独的列),它会变得更加困惑(因为您必须做一些事情,例如调整日值的范围当你改变月份时),但想法是一样的。只需创建您自己的 UIPickerView(或在 Interwebs 上搜索第三方解决方案)。

关于ios - 是否可以格式化 UIDatePicker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54523325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com