R изменение даты и времени с DST на GMT в 01: 16 утра?

#r #datetime #timezone #strptime

#r #дата и время #Часовой пояс #strptime

Вопрос:

Я изучал, как использовать strptime() дату и время по часовым поясам в genreal, и мне было интересно посмотреть, как R обрабатывает переключение часов с BST на GMT. Я посмотрел будущую дату и прочитал здесь, что в 2019 году часы переводятся в обратном направлении с BST на GMT в 2 часа ночи 27 октября.

Итак, когда я попробовал приведенный ниже код (за день до 27-го), он показывает BST, что я понимаю

 > strptime("26/10/2019 00:00", format="%d/%m/%Y %H:%M", tz="Europe/London")
[1] "2019-10-26 BST"
  

Затем я попробовал на следующий день после 27-го и получил GMT, что имеет смысл

 > strptime("28/10/2019 00:00", format="%d/%m/%Y %H:%M", tz="Europe/London")
[1] "2019-10-28 GMT"
  

Итак, я задался вопросом, как это работает с компонентом time, и обнаружил, что в 01: 16 27 октября это BST

 > strptime("27/10/2019 01:16", format="%d/%m/%Y %H:%M", tz="Europe/London")
[1] "2019-10-27 01:16:00 BST"
  

А в 01: 17 27 октября оно меняется на GMT

 > strptime("27/10/2019 01:17", format="%d/%m/%Y %H:%M", tz="Europe/London")
[1] "2019-10-27 01:17:00 GMT"
  

Кажется, я не могу найти никакого объяснения этому и хотел бы получить некоторую помощь в моем понимании!

Комментарии:

1. Я получаю тот же результат, что и вы, используя strptime . Но получите правильный результат, используя lubridate. lubridate::dmy_hm("27/10/2019 0:59", tz="Europe/London") #[1] "2019-10-27 00:59:00 BST" lubridate::dmy_hm("27/10/2019 01:00", tz="Europe/London") #[1] "2019-10-27 01:00:00 GMT"