我正在尝试创建一个函数,以从API快速将字符串转换为日期。我已经看到了很多有关此的示例,并尝试执行相同的操作,但始终返回nil。
let dateStr = "1996-11-24T09:02:32Z"
func toDate(str: String) -> Date? {
let dateForm = DateFormatter()
dateForm.dateFormat = "dd-MM-yyyy"
dateForm.locale = Locale(identifier: "en_US")
let date = dateForm.date(from: str)
return date
}
print(toDate(str: dateStr)) // always prints nil
我试图进行调整,更改位置,删除位置,更改dateFormat,但没有任何效果。
这里可能出什么问题了?
先谢谢您
答案 0 :(得分:0)
由于您的日期是df['normalized-losses'] = df['normalized-losses'].astype('float')
mean_val = df['normalized-losses'].mean()
print(mean_val)
,并且您使用的是不匹配的格式1996-11-24T09:02:32Z
。因此您需要将dd-MM-yyyy
替换为dd-MM-yyyy
,它将正常工作。
您的结果将是:
yyyy-MM-dd'T'HH:mm:ssZ
或者您也可以按照dan的建议使用简短方式:
let dateStr = "1996-11-24T09:02:32Z"
func toDate(str: String) -> Date? {
let dateForm = DateFormatter()
dateForm.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
dateForm.locale = Locale(identifier: "en_US_POSIX")
let date = dateForm.date(from: str)
return date
}
print(toDate(str: dateStr)) // "Optional(1996-11-24 09:02:32 +0000)\n"
或者,如果您更喜欢func toDate(str: String) -> Date? {
return ISO8601DateFormatter().date(from: str)
}
print(toDate(str: dateStr)) // "Optional(1996-11-24 09:02:32 +0000)\n"
Extension