当我们从网络获取 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]
...请注意,我删除了 因为这为您提供了您可能不需要的格式(例如 2/12/19)我还删除了双引号,因为在您的示例查询中我看不到任何双引号(这些引号仅适用于 formatter.dateStyle = .short
String
)
关于json - 提交查询以获取带有更新日期字符串的 Json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54650888/