当我们从web获取Json数据时,我们必须以字符串格式包含日期。但是它只在我提交原始字符串值时才有效。当我创建具有相同值的字符串实例(使用Date())时,请求无效。我试过这段代码:
var formattedDate = { ()-> String in let dateString = String(describing: Date())
let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd" formatter.dateStyle = .short return dateString }()
let dateString = "\"\(formattedDate.dropLast(15))"+"\""
//then instead of :
let query: [String : String] = ["api_key" : "DEMO_KEY", "date" : "2012-02-12"]
//this:
let query: [String : String] = ["api_key" : "DEMO_KEY", "date" : dateString]
没工作!格式化通过生成相同的精确字符串值!有任何想法吗?
你只需要创建DateFormatter
并将其dateFormat
设置为您需要的格式("yyyy-MM-dd"
)。然后,您可以使用格式化程序上的string(from:)
从某个日期获取格式化字符串
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd"
let dateString = formatter.string(from: Date())
let query: [String : String] = ["api_key" : "DEMO_KEY", "date" : dateString]
...注意我删除了
formatter.dateStyle = .short
因为这给你提供了你可能不需要的格式(例如2/12/19),而且我也删除了双引号,因为在你的示例查询中我看不到任何内容(这些引用仅适用于String
)