我将这个24小时格式的字符串"2019-01-10 21:00:40"
转换为Date对象,但是我得到的是这个2019-01-10 13:00:40
。我正在使用格式yyyy-MM-dd HH:mm:ss
将字符串转换为日期对象。这里似乎是什么问题?
我正在使用此字符串扩展将字符串转换为日期:
func toDateWithFormat(_ format:String) -> Date{
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
guard let date = dateFormatter.date(from: self) else {
fatalError("ERROR: Date conversion failed due to mismatched format.")
}
return date
}
答案 0 :(得分:2)
这是由于时区不同而发生的。您必须将时区添加到日期中。
使用此方法将时间戳转换为日期
class func timeStampToDate(_timestamp : String, _dateFormat : String) -> String{
var LOCAL_TIME_ZONE: Int { return TimeZone.current.secondsFromGMT() }
var date = Date(timeIntervalSince1970: TimeInterval(_timestamp)!)
date += TimeInterval(truncating: LOCAL_TIME_ZONE as NSNumber)
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone(abbreviation: "GMT") //Set timezone that you want
dateFormatter.locale = NSLocale.current
dateFormatter.dateFormat = _dateFormat //Specify your format that you want
let strDate = dateFormatter.string(from: date)
return strDate
}
当您从此方法获取strDate时。转换为日期对象。您将获得当前日期对象