Разница во времени в днях от строки datetime до текущего времени в Swift 5 - PullRequest
0 голосов
/ 06 октября 2019

У меня есть строка DateTime как "15/06/2019 02:03:20 PM IST". Мне нужно рассчитать разницу во времени в днях между строкой DateTime и текущей датой и временем.

Я могу получить currentDateTime, используя

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy hh:mm:ss a zzz"
let now = Date()
print(dateFormatter.string(from: now))      //It gives output as 06/10/2019 11:08:52 AM GMT+5:30 not as IST timezone. 

Но я не могу преобразовать данную строку DateTime в объект даты для получения разницы.

let registrationTime = "15/06/2019 02:03:20 PM IST"
print(dateFormatter.date(from: registrationTime))       //prints nil

Я пытался добавить календарь, локаль и часовой пояс в dateformatter, но он не возвращал объект даты. Я также попытался разбить registationTime на компоненты (разделенные пробелом) и по отдельности преобразовать их в дату из строки, но это также не сработало.

1 Ответ

0 голосов
/ 06 октября 2019

Чтобы это работало с Индийским стандартным временем, вам нужно установить для вашей страны значение 1 для Индии

dateFormatter.locale = Locale(identifier: "en_IN")

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy hh:mm:ss a zzz"
dateFormatter.locale = Locale(identifier: "en_IN")

let now = Date()
print(dateFormatter.string(from: now))

let registrationTime = "15/06/2019 02:03:20 PM IST"
print(dateFormatter.date(from: registrationTime))

06/10/10 2019 09:35:48 AMGMT + 2
Необязательно (2019-06-15 08:33:20 +0000)

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