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

标签 swift date-formatting

我有一种方法可以快速将我的 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" 进行比较。存在三个问题:

  • 缺少逗号
  • 缺少 AM/PM 说明符 a
  • 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)
}

关于swift - 在 Swift 中将日期格式化为 sql 日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57461463/

相关文章:

php - MySQL 日期时间格式

java - "2017-03-29 18:17:12+00"的日期格式是什么

ios - 完全删除 View Controller - Swift

localization - iReport:如何根据法语区域设置格式化日期

arrays - 尝试保存到 NSUserdefaults 时出错

objective-c - 我不想重新加载 View Controller

迄今为止 ISO 8601 的 python 字符串

php - laravel-4 如何更改日期格式

SwiftUI里面的数学运算(部分查看)

arrays - 在 Swift 中归档和取消归档 DocumentDirectory 中的数组