gpt4 book ai didi

swift - 将字符串转换为日期对象时出现问题

转载 作者:行者123 更新时间:2023-11-30 10:40:45 25 4
gpt4 key购买 nike

我有一个 DatePicker View ,当用户单击 UITextField 时,它会显示 DatePicker,用户当然可以选择一个日期。问题是,当我尝试将字符串转换为日期对象时,我什么也得不到,所以我无法比较两个日期。

    func checkDate(){

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: Locale.current.identifier)
dateFormatter.timeZone = .current
dateFormatter.dateFormat = "dd/MM/yy"

guard let startDate = mView.startDateTextField.text else { return }
print("DATE: \(startDate)")

guard let startDateFromString = dateFormatter.date(from: startDate) else { return } //I think it returns here.
//Won't get here.
print("DATE: \(startDate)")

guard let endDate = mView.endDateTextField.text else { return }
guard let endDateFromString = dateFormatter.date(from: endDate) else { return }

if startDateFromString.compare(endDateFromString) == ComparisonResult.orderedDescending{
print("Start date cannot be greater than end date.")
}
}

我尝试调试,断点确实到达了 startDateFromString 行,但是从那里“跳转”到了外面,所以我猜它不会从字符串中获取日期并返回。

我就是不明白为什么。

编辑:这是我将 TextField Text 设置为从 DatePicker 中选择的日期的位置。

    @objc func datePickerValueChanged(sender: UIDatePicker){
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .medium
dateTextField.text = dateFormatter.string(from: sender.date)

}

最佳答案

也许您使用了错误的日期格式。检查您的日期格式 here

例如,如果您的日期字符串是“Mar 1, 2019”,则必须将其用作日期格式“MMM d, yyyy”

dateFormatter.dateFormat = "MMM d, yyyy"

关于swift - 将字符串转换为日期对象时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56841070/

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