【问题标题】:Submitting queries to fetch Json data with updated date string提交查询以获取具有更新日期字符串的 Json 数据
【发布时间】:2019-02-12 13:11:18
【问题描述】:

当我们从 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] 

没用!格式化会产生相同的确切字符串值!有什么想法吗?

【问题讨论】:

    标签: json swift date swift4.2


    【解决方案1】:

    您只需要创建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)

    【讨论】:

    • 谢谢!是的,它更简单,但仍然不起作用。当我手动添加“2019-02-11”时,我只会获取数据。但这很糟糕,因为我想每天更新我的应用程序视图。
    • @GergelyKovacs 你确定你没有添加双引号吗?你使用的正是我写的?
    • @GergelyKovacs 你有let dateString = formatter.string(from: Date())吗?
    • 哇,是的,现在它可以工作了!谢谢!是的,首先我没有删除 +"\""
    猜你喜欢
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多