在 Swift 中将日期格式化为 sql 日期格式

大胆试试吧

我有一种方法可以将我的 SQL 日期快速转换为“MM-dd-yyyy, HH:mm”。我需要能够将其转换回“yyyy-MM-dd'T'HH:mm:ss”。这将是服务器时间和东部时区。

转换为“MM-dd-yyyy,HH:mm”:

  static func dateView(_ DateString: String) -> String {
        var returnDate = ""
        let dateFormatter = DateFormatter()
        dateFormatter.locale = Locale(identifier: "en_US_POSIX")
        dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
        let string = String(DateString)
        if let date = dateFormatter.date(from: string) {
            dateFormatter.dateStyle = .short
            dateFormatter.timeStyle = .short
            returnDate = dateFormatter.string(from: date)
        }

    return returnDate
}

尝试转换为“yyyy-MM-dd'T'HH:mm:ss”:

static func dateToSQLDate(_ DateString: String) -> String {
    var returnDate = ""
    let dateFormatter = DateFormatter()
    dateFormatter.locale = Locale(identifier: "en_US_POSIX")
    dateFormatter.dateFormat = "MM/dd/yy HH:mm"
    let string = String(DateString)
    if let date = dateFormatter.date(from: string) {
        dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
        //dateFormatter.timeStyle = .short
        returnDate = dateFormatter.string(from: date)
    }

    return returnDate
}

示例是:

var date = "3/10/16, 10:00AM"
dateToSQLDate(date)
Expected Out: 2016-03-10T10:00:00

对我做错了什么有任何想法吗?

瓦迪安

您的日期格式错误。

将字符串"3/10/16, 10:00AM"与日期格式进行比较"MM/dd/yy HH:mm"存在三个问题:

  • 逗号不见了
  • a缺少AM/PM 说明符
  • 12 小时模式是 hh

static func dateToSQLDate(_ string: String) -> String {
    let dateFormatter = DateFormatter()
    dateFormatter.locale = Locale(identifier: "en_US_POSIX")
    dateFormatter.dateFormat = "MM/dd/yy, hh:mma"
    guard let date = dateFormatter.date(from: string) else { return "" }
    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
    return dateFormatter.string(from: date)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章