我想解析一個字符串,我從本地返回一個MySQL Date
數據類型作爲日期。然而,每次我嘗試在Swift 3中用進行解析時,結果日期都是兩天。Swift 3解析日期字符串
下面是從服務器返回的日期字符串的例子:
「星期六2016年12月31日00:00:00 GMT-0800(PST)」
我嘗試使用捕捉按以下格式字符串信息:
let DatFormatServerTwo = "EEE MMM dd yyyy HH':'mm':'ss zzzZ '('zzz')'"
然後我用這樣的:
static func stringDateToDateTwo(dateString: String, timeZone: TimeZone = TimeZone.current) -> Date {
dateFormatter.dateFormat = DateFormatServerTwo
dateFormatter.timeZone = timeZone
return dateFormatter.date(from: dateString) ?? Date()
}
其中dateFormatter
分配給
我認爲問題是,有與時區偏移,我不能正確捕捉信息。通過切斷日期字符串的一部分,即當TimeZone的東西進入圖片時,我可以得到想要的日期。我不想每次都這麼做,因爲它很混亂。
這裏是我砍的字符串來獲取我從服務器所需的日期:
var holidayDateArray = holidayDate.characters.split{$0 == " "}.map(String.init)
var count = 0
var newString = ""
for substring in holidayDateArray {
if count < 5 {
newString.append(substring)
} else {
break
}
count += 1
}
然後我格式化是這樣的:
static let DateFormatServerTwo = "EEEMMMddyyyyHH':'mm':'ss"
你在什麼時區? – Adrian