【问题标题】:Sending a date from Swift to Vapor 3将日期从 Swift 发送到 Vapor 3
【发布时间】:2021-02-13 20:53:07
【问题描述】:

我在从 iOS Swift 5 向 Vapor 3 发送日期时遇到问题。这是我从 Vapor 得到的错误:

POST /admin/test Expected date string to be ISO8601-formatted.

这是我在 iOS 中创建日期的方式

let today = Date()
        let f = ISO8601DateFormatter()
        f.formatOptions.insert(.withFractionalSeconds)
        let finalDate = f.string(from: today)

这是我在 iOS 中的事务模型

final class Transaction: Codable, ReflectedStringConvertible {
        
    var id: Int?
    var date: String
    var amount: Int
    var planeID: Int
    var userID: UUID
    var month: Int
    var year: Int

    init(date: String, amount: Int, planeID: Int, userID: UUID, month: Int, year: Int) {
        self.date = date
        self.amount = amount
        self.planeID = planeID
        self.userID = userID
        self.month = month
        self.year = year
    }
}

这是我的蒸汽 API


func createHandler (_ req: Request, transaction: Transaction) throws -> Future<Transaction> {
           return transaction.save(on: req)
       }

这是我在蒸汽方面的交易模型


final class Transaction: Codable {
    
    var id: Int?
    var date: Date
    var amount: Int
    var planeID: Plane.ID
    var userID: User.ID
    var month: Int
    var year: Int
    //fixes Swift 5 bug
    typealias Database = PostgreSQLDatabase

    
    init(date: Date, amount: Int, planeID: Plane.ID, userID: User.ID, month: Int = 0, year: Int = 0) {
        self.date = date
        self.amount = amount
        self.planeID = planeID
        self.userID = userID
        self.month = month
        self.year = year
    }
}

任何想法我做错了什么?是我发送日期的字符串而不是日期吗?非常感谢。

【问题讨论】:

  • 尝试不带小数秒
  • 谢谢。我以为我已经尝试过了,但现在可以了。谢谢!

标签: swift vapor


【解决方案1】:

答案是删除小数秒

let today = Date()
let f = ISO8601DateFormatter()
let finalDate = f.string(from: today)

【讨论】:

    猜你喜欢
    • 2019-08-10
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 2020-07-13
    • 2021-11-24
    • 1970-01-01
    相关资源
    最近更新 更多