为什么 format.dateFormat 不能赋值为字符串?
Why format.dateFormat can't be assigned as String?
我想以某种特定格式获取当前 date/time。
例如,这个格式是正确的:
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
,但您在代码中使用了名为 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)
}
我想以某种特定格式获取当前 date/time。
例如,这个格式是正确的:
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
,但您在代码中使用了名为 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)
}