it-swarm.com.ru

Преобразование часового пояса в электронной таблице Google

Я знаю, это выглядит просто.

В электронной таблице Google у меня есть столбец, в который я ввожу время в одном часовом поясе (GMT) И другой столбец должен автоматически получать время в другом часовом поясе (Pacific Time)

 GMT      | PT
----------|------------
 5:00 AM  | 9:00 PM

На данный момент я использую 

 =$C$3-time(8,0,0)

Проблема здесь в том, что я хочу изменить формулу времени для перехода на летнее время.

Есть ли какая-либо функция или скрипт, который может автоматически переводить летнее время в расчет.

15
skay

Короткий ответ

Встроенной функции нет, но вы можете создать пользовательскую функцию.

Пример

/**
 * Converts a datetime string to a datetime string in a targe timezone.
 *
 *@param {"October 29, 2016 1:00 PM CDT"} datetimeString Date, time and timezone.
 *@param {"GMT"} timeZone Target timezone
 *@param {"YYYY-MM-dd hh:mm a z"} Datetime format
 *@customfunction
 */
function myFunction(datetimeString,timeZone,format) {
  var moment = new Date(datetimeString);
  return Utilities.formatDate(moment, timeZone, format)
}

Объяснение

Для учета часовых поясов перехода на летнее время входной аргумент для преобразуемого значения должен включать в себя дату, а не только время дня. Вы можете установить дату и часовой пояс по умолчанию для построения datetimeString, объединяя его перед вызовом формулы.

=myFunction("October 29, 2016 "&A2&"GMT","PDT","hh:mm a")

Смотрите также

Рекомендации

15
Rubén

Это также можно сделать без макросов. Достаточно просто использовать функции и манипулировать данными. Объяснить весь процесс здесь было бы немного громоздко. Просто изучите, как работают различные функции времени, и используйте свое творчество. 

Подсказка: используйте = СЕЙЧАС (), если вы хотите текущую дату и время. На самом деле вам это понадобится, если вам нужно узнать точную разницу во времени между разными датами. 

Используйте = NOW () - INT (NOW ()), когда вам нужно только время (с укороченной датой, если оба значения попадают на одну и ту же дату). Затем отформатируйте соответствующую ячейку или ячейки для времени (то есть 16:30), а не для даты-времени (25.03.2009 17:00:00). Последний - это формат, который вы используете, когда хотите показать дату и время ... например, когда вы используете NOW ().

Также найдите в Интернете смещение летнего времени для различных стандартных часовых поясов (PT, MT, CT, ET, AT) по отношению к всемирному координированному времени (UTC). Например, в 2019 году смещение по тихоокеанскому времени составляет UTC-7, когда летнее время наблюдается, начиная с 10 марта в 2 часа ночи (по тихоокеанскому времени) до 3 ноября в 2 часа ночи. Это означает, что разница во времени от UTC до Тихого океана составляет 7 часов. В остальное время года 8 часов (UTC-8). Во время наблюдения летнего времени, начинающегося где-то в марте (10-го числа этого года), он переходит из PST в PDT, перемещая часы вперед на 1 час, или то, что мы знаем как UTC-7 (это летнее время). После соблюдения летнего времени он переходит от PDT к PST, снова переводя часы на 1 час назад, или что мы знаем как UTC-8 (или зимнее время). Помните, что часы идут на один час в марте, чтобы лучше использовать время. Это то, что мы называем летнее время или летнее время. Итак, после 8 марта в 2 часа ночи (в этом году в 2019 году) мы находимся в UTC-7. В ноябре мы делаем наоборот. 3 ноября в 2 часа ночи часы возвращаются на один час, когда наступает зима. В этот момент мы возвращаемся в стандартное время. Кажется немного запутанным, но на самом деле это не так.

Так, в основном, для людей в PT они идут от PST до PDT в марте и от PDT до PST в ноябре. Точно такой же процесс происходит с горным временем, центральным временем и восточным временем. Но у них есть разные смещения времени UTC. MT - это UTC-6 или UTC-7. CT - это или UTC-5, или UTC-6. И ET это или UTC-4 или UTC-5. Все зависит от того, находимся ли мы в летнее время, когда наблюдается переход на летнее время, чтобы лучше использовать дневное и рабочее время, или в зимнее время (AKA, Standard Time).

Тщательно изучите их и поймите, как они работают, и поиграйтесь с различными функциями времени в Excel или Google Sheets, такими как функции TIME (#, #, #) и NOW () и тому подобное, и, поверьте мне, скоро вы сможете делать что-то вроде профессионала с простыми функциями без использования VBA. Вы также можете использовать функцию TEXT () с такими трюками, как = TEXT (L4, "DDD, MMM D") & "|" & TEXT (L4, "h: mm AM/PM"), где L4 содержит вашу дату -временная метка, для отображения времени и форматов даты. Функция VALUE () также оказывается полезной время от времени. Вы даже можете создать цифровой таймер обратного отсчета без использования макросов. Для этого вам нужно создать циклическую ссылку и установить итерации в 1, а время показывать каждые 1 минуту в настройках вашей электронной таблицы.

Официальный веб-сайт timeanddate dot com является хорошим источником информации для всех, кто знает о часовых поясах и о том, как работает дневное время. Там тоже есть все смещения UTC. Удачи.

1
user10897742