提交查询以获取具有更新日期字符串的 Json 数据

Submitting queries to fetch Json data with updated date string

当我们从网络获取 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