【问题标题】:Why format.dateFormat can't be assigned as String?为什么 format.dateFormat 不能指定为字符串?
【发布时间】:2019-10-10 10:04:17
【问题描述】:

我想以某种特定格式获取当前日期/时间。

例如,这种格式是正确的:

let date = Date()
let format = DateFormatter()
format.dateFormat = "yyyy-MM-dd HH:mm:ss"
let formattedDate = format.string(from: date)

但是,当我尝试这样做时,我得到了错误:

func getCurrentDateTime(format: String = "yyyy-MM-dd HH:mm:ss") -> String {
    let date = Date()
    let format = DateFormatter()
    format.dateFormat = format       // Error: Cannot assign value of type 'DateFormatter' to type 'String?'
    return format.string(from: date)
}

"yyyy-MM-dd HH:mm:ss" - 不是字符串吗?在这种情况下:

format.dateFormat = "yyyy-MM-dd HH:mm:ss"

这里应该是什么格式?

【问题讨论】:

  • 参数名称format: String = "yyyy-MM-dd HH:mm:ss"let format = DateFormatter()一样吗?
  • 是的,我理解错误))

标签: swift date datetime format dateformatter


【解决方案1】:

您刚刚在代码中犯了一个小错误。您已将参数命名为 format,但在代码中使用了名为 format 的变量。

只需将参数名称更改为其他名称(如formatString)即可:

func getCurrentDateTime(formatString: String = "yyyy-MM-dd HH:mm:ss") -> String {
    let date = Date()
    let format = DateFormatter()
    format.dateFormat = formatString
    return format.string(from: date)
}

【讨论】:

  • 是的))谢谢,转储错误xD
  • @DmytroKruhlov 不客气。我们都做过同样的事情:)
猜你喜欢
  • 2020-05-07
  • 1970-01-01
  • 2020-09-25
  • 2016-06-30
  • 2018-10-26
  • 2021-08-23
  • 2011-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多