#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"