Преобразование даты и часового пояса: методы преобразования дат между часовыми поясами на разных языках программирования

Чтобы преобразовать дату из одного часового пояса в другой на разных языках программирования, вы можете использовать разные библиотеки и функции. Вот примеры на трёх популярных языках: Python, JavaScript и Java.

Python:

from datetime import datetime
import pytz
def convert_timezone(date, from_tz, to_tz):
    from_timezone = pytz.timezone(from_tz)
    to_timezone = pytz.timezone(to_tz)
    localized_date = from_timezone.localize(date)
    converted_date = localized_date.astimezone(to_timezone)
    return converted_date

JavaScript:

function convertTimezone(date, fromTz, toTz) {
  const fromDate = new Date(date);
  const fromOffset = fromDate.getTimezoneOffset() * 60000;
  const fromUTC = fromDate.getTime() + fromOffset;
  const toOffset = new Date().getTimezoneOffset() * 60000;
  const toUTC = fromUTC + toOffset;
  const convertedDate = new Date(toUTC);
  return convertedDate;
}

Java:

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class TimezoneConverter {
    public static LocalDateTime convertTimezone(LocalDateTime date, String fromTz, String toTz) {
        ZoneId fromZone = ZoneId.of(fromTz);
        ZoneId toZone = ZoneId.of(toTz);
        ZonedDateTime fromZdt = ZonedDateTime.of(date, fromZone);
        ZonedDateTime toZdt = fromZdt.withZoneSameInstant(toZone);
        return toZdt.toLocalDateTime();
    }
}

Для всех приведенных выше примеров параметр dateпредставляет входную дату, fromTzпредставляет исходный часовой пояс, а toTzпредставляет целевой часовой пояс.. Функции возвращают преобразованную дату в целевом часовом поясе.