我有一种方法可以快速将我的 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/