Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Преобразование TDateTime из Delphi в Swift: работа со стандартом 30 декабря 1899 года

Delphi , Синтаксис , Дата и Время

В мире программирования часто возникает необходимость работы с датами и временем в различных языках программирования и средах разработки. Одной из таких ситуаций является необходимость преобразования значений TDateTime из Delphi в даты в Swift. TDateTime в Delphi представляет собой число, обозначающее количество дней, прошедших с 30 декабря 1899 года (0 часов, 0 минут, 0 секунд). В Swift для работы с датами используется другой стандарт, где отсчет ведется с 1 января 1970 года (Unix-время).

Преобразование TDateTime в Swift

Для выполнения преобразования TDateTime в Swift, необходимо сначала определить разницу между двумя эрами (Delphi и Unix). Разница составляет 2209161600 секунд (количество секунд с 30 декабря 1899 года до 1 января 1970 года). Затем, зная что в одном дне 86400 секунд, можно вычислить количество секунд, соответствующее заданному значению TDateTime, и преобразовать его в Unix-время.

Пример кода на Swift:

extension Date {
    init(fromDelphiTDateTime delphiDate: Double) {
        let tDateTimeUnixTimeOffset = 2209161600.0
        let numberOfSecondsInDay = 86400.0

        let delphiTDateTimeAsUnixTime = delphiDate * numberOfSecondsInDay - tDateTimeUnixTimeOffset
        self.init(timeIntervalSince1970: delphiTDateTimeAsUnixTime)
    }
}

Примеры использования:

// 30 декабря 1899 года в 00:00
let date1 = Date(fromDelphiTDateTime: 0)

// 24 января 2020 года в 11:04 (в соответствии с примерами из Delphi)
let date2 = Date(fromDelphiTDateTime: 43854.4410269444)

Учет часовых поясов

При преобразовании важно учитывать часовые пояса. Если TDateTime в Delphi представлено в часовом поясе, отличном от UTC, необходимо это учесть при преобразовании.

Заключение

Приведенный выше код позволяет преобразовать TDateTime из Delphi в объект Date в Swift, используя стандарт, принятый в Delphi — количество дней с 30 декабря 1899 года. Это простой, но эффективный способ синхронизации данных между двумя различными средами разработки.

Создано по материалам из источника по ссылке.

Преобразование TDateTime из Delphi в Swift подразумевает учет, что TDateTime в Delphi отсчитывает дни с 30 декабря 1899 года, в то время как Swift использует Unix-время с 1 января 1970 года, и требуется корректировка на разницу между этими стан


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Дата и Время ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 15:02:23/0.0030918121337891/0