【问题标题】:SWIFT: Formatting from text field to Date not workingSWIFT:从文本字段格式化为日期不起作用
【发布时间】:2019-02-23 11:53:14
【问题描述】:

我有以下功能,我需要标签根据所选日期更新周数。日期选择由 UIDatePicker 进行。

如果我写 print(pickedDate) 我会得到 UIDatePicker 刚刚选择的日期,所以这似乎工作正常。
但是,如果我 print(selectedDate) 我得到 nil,因此公式中出现错误 Fatal error: Unexpectedly found nil while unwrapping an Optional value

这是我的代码:

func selectWeek () {

        let formatter = DateFormatter()

        let pickedDate = dateEntry.text
        let selectedDate = formatter.date(from: pickedDate!)


        if (weekTwoIntervalJan! ... weekThreeIntervalJan!).contains(selectedDate!) {
            weekNrLabel.text = "Week 3"
        }
        else if (weekThreeIntervalJan! ... weekFourIntervalJan!).contains(selectedDate!) {
            weekNrLabel.text = "Week 4"
        }


        else if (startDateFebDate! ... weekOneIntervalFeb!).contains(selectedDate!) {
            weekNrLabel.text = "Week 1"
        }

        else if (weekOneIntervalFeb! ... weekTwoIntervalFeb!).contains(selectedDate!) {
            weekNrLabel.text = "Week 2"
        }
        else if (weekTwoIntervalFeb! ... weekThreeIntervalFeb!).contains(selectedDate!) {
            weekNrLabel.text = "Week 3"
        }
        else if (weekThreeIntervalFeb! ... weekFourIntervalFeb!).contains(selectedDate!) {
            weekNrLabel.text = "Week 4"
        }


        else {
            print("fail")



}

【问题讨论】:

  • formatter.date(from: pickedDate!) 和后来的selectedDate!,会导致崩溃,因为它是零。 pickedDate 的价值是什么?您需要设置 dateFormatter 的 format
  • pickedDate 返回 "String? "Wednesday, February, 27"。我尝试使用不同的日期格式,但这并没有什么不同
  • DateFormatter 不是一个神奇的工具。你需要设置它的格式。
  • 我现在将格式设置为 formatter.dateFormat = "EEEE, MMMM, dd"。仍然收到错误 - 致命错误:在展开可选值时意外发现 nil

标签: swift date nsdateformatter dateformatter


【解决方案1】:

你的UIDatePicker叫什么名字?

也许你想做(用你的UIDatePicker的名字替换datePicker):

let selectedDate = datePicker.date

【讨论】:

  • 我也尝试过使用 datePicker.date 代替文本字段,但 datePicker 值在选择后不会更新,它只是显示新值的文本字段。当我单击文本字段并重新打开日期选择器时,它会恢复为今天的日期,而不是文本字段上的日期。
猜你喜欢
  • 2013-01-09
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多