Дата и время меняются при преобразовании в строку - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь вычесть минуту из моего свидания. BaseDate - это моя дата, а dateMinusMin - вычитание, это минута от моей даты, которая работает совершенно нормально.

let baseDate = "2020-03-06 06:00" //My date With format "yyyy-MM-dd HH:mm"

let dateMinusMin = Calendar.current.date(byAdding: .minute, value: -(240), to: baseDate)!
print(dateMinus4Hours) \\2020-03-06 02:00:00 +0000

Но при преобразовании даты в строку время резко меняется и показывает 07:30 вместо 02:00.

  let modifyStr = Utill.getLocalStringFromDate("yyyy-MM-dd HH:mm Z", date: dateMinus4Hours, iden: "en_US_POSIX")
    print(modifyStr) \\ 2020-03-06 07:30 +0530

OutPut = 2020-03-06 07:30 + 0530

Функция для преобразования даты в строку

 func getLocalStringFromDate(_ currentFormat:String,date:Date,iden:String) -> String {
        let formatter = DateFormatter()
        formatter.dateFormat = currentFormat
        formatter.locale = Locale(identifier: iden)
        return formatter.string(from: date)
    }

1 Ответ

0 голосов
/ 06 марта 2020

Я не нахожу никаких проблем в вашем коде. Вы можете увидеть результат на изображении ниже.

Заданный ввод - 06:00 часов

Вывод - 02:00 часов (4 часа минус, как вы хотите)

enter image description here

...