无法调用非函数类型“String”的值?

问题描述 投票:0回答:2

我是 iOS 开发新手。我正在尝试将字符串格式的日期值(2024-09-22)转换为 2024 年 9 月 22 日。

但我得到:

无法调用非函数类型“String”的值?

在进行日期格式化时。

我在

dateFormatter.dateFormat(from : dateString)
中收到此错误。

我尝试了以下代码进行格式化。

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MMM-yyyy"
dateFormatter.timeZone = TimeZone.current
dateFormatter.locale = Locale.current
let convertedDate = dateFormatter.dateFormat(from : dateString)

有人可以帮我解决这个问题吗?

swift date-formatting
2个回答
1
投票

您首先需要从给定的

Date
(“2024-09-22”格式:“yyyy-MM-dd”)获取
String
。并创建另一个 DateFormatter 将
Date
转换为新的
String
:

let dateString = "2024-09-22"

let dateFormatterToDate = DateFormatter()
dateFormatterToDate.dateFormat = "yyyy-MM-dd"
let date = dateFormatterToDate.date(from: dateString)

let dateFormatterFromDate = DateFormatter()
dateFormatterFromDate.dateFormat = "dd MMM yyyy"
let result = dateFormatterFromDate.string(from: date!) // 22 Sep 2024

0
投票

要将日期字符串转换为另一个日期字符串,您必须将其转换为

Date
然后再转换回
String
,因此您需要输入和输出格式。 API
dateFormat(from
不存在。

默认时区是当前时区,并且无论当前区域设置如何,都始终获取英文月份名称,请将区域设置设置为

en_US_POSIX

let dateString = "2024-09-22"
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd"
if let date = dateFormatter.date(from: dateString) {
    dateFormatter.dateFormat = "dd MMM yyyy"
    let convertedDate = dateFormatter.string(from: date)
}
© www.soinside.com 2019 - 2024. All rights reserved.