NSDate date в target-c дает другое значение datetime, чем Date () в swift - PullRequest
0 голосов
/ 26 октября 2018

Я понимаю, что IOS использует не зависящее от места время, если не указано иное.Однако по неизвестной причине при входе в консоль [дата NSDate] из Objective-C я получаю фактическое время, когда я нахожусь, тогда как при печати в консоль Date () из swift, я получаю ГринвичТем временем.

В объективе C первое упоминание о дате в методе:

   __block NSDate* rightNow = [NSDate date];
    LogDebug(@"right now%@",rightNow);
/logs as: right nowFri Oct 26 14:18:37 2018 

В swift первое упоминание о дате в методе:

 let now =  Date()
        print("right now date is",now)
//Prints as: right now date is 2018-10-26 18:19:10 +0000

Я устанавливаю форматы с использованием dateformatter для даты в других методах класса Objective-C, но я не понимаю, как они могли бы перенестись в этот метод.

Что могло бы быть причиной отличия?Есть ли способ заставить их быть одним или другим?

Заранее спасибо за любые предложения.

1 Ответ

0 голосов
/ 04 ноября 2018

Хотя date () и NSDate должны быть одинаковыми, они по-разному регистрируются в консоли независимо от того, используется ли NSLog или такая библиотека, как LogDebug.Вы должны помнить об этом при проверке журналов консоли.

Там, где есть практическое следствие различия между ними, является то, что now.timeIntervalSince (someDate!) Возвращает результат, отличный от NSDate (). TimeIntervalSince (someDate).Чтобы избежать проблем, сравнивайте яблоки с яблоками, другими словами date () с date () и NSDate () с NSDate ()

...