swift - 有没有办法将日期数组设置为同一个小时?
问题描述
我有一个从日期选择器创建的日期数组。当它们被保存时,它还会添加小时和分钟。当我比较日期相等时,由于夏令时,其中一些是一个小时的休息时间。
有没有办法在日期选择器之后将每个日期设置为同一小时,或者我是否必须通过检查夏令时并添加或减去一个小时的过程?或者我应该通过一个函数运行数组以使它们都相等?
func createDatePicker() {
// format Display of date
datePicker.datePickerMode = .date
// assign datepicker to textfield
dateTextField.inputView = datePicker
// create toolbar
let toolBar = UIToolbar()
toolBar.sizeToFit()
// add item Button
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: nil, action: #selector (doneClicked))
toolBar.setItems([doneButton], animated: true)
dateTextField.inputAccessoryView = toolBar
}
@objc func doneClicked() {
//format the date display in text field
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .short
dateFormatter.dateFormat = "MM-dd-yyyy"
dateTextField.text = dateFormatter.string(from: datePicker.date)
self.view.endEditing(true)
解决方案
找到了解决办法。
if let date = dateTextField.text {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
newDate = dateFormatter.date(from: date)!
let tz = TimeZone.current
if tz.isDaylightSavingTime(for: newDate) {
print("date Changed")
newDate += 3600
推荐阅读
- javascript - 如何在返回响应的javascript中的event.respondWith()中放置一个函数
- html - 图标未显示在 Laravel 项目中但显示在 HTML 模板上
- python - 在 Python 中运行 numpy.random.randint() 后冻结输出
- ios - 我想构建一个 AR 工具来在虚拟空间中放置和存储文本文件
- css - 我的 css 应该应用,但由于某种原因它被忽略了
- mysql - 如何获取结果列表中特定值的位置?
- python - 验证 pyspark 中的无序模式
- angular - 从一个 cdkDropList 拖放到另一个
- r - 安装 R 包时出错。找不到 -lgmop -lquadmath
- javascript - 如何显示选定的选项值