Преобразование строки даты формата 24 часа в дату, и она не совпадает - PullRequest
0 голосов
/ 10 января 2019

Я конвертирую эту 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
}

1 Ответ

0 голосов
/ 10 января 2019

Это происходит из-за другого часового пояса. Вы должны добавить часовой пояс в дату.

Используйте этот метод для преобразования вашей временной метки в дату

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 от этого метода. преобразовать в объект даты. Вы получите точный объект даты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...