Фактическая ошибка, кажется, в строке;
as.POSIXlt(dh, '%Y-%m-%d %I:%M:%S %p')
Это должно быть как:
as.POSIXlt(dh, format= '%Y-%m-%d %I:%M:%S %p')
#[1] "2018-05-08 19:42:34 BST"
2-й аргумент для strptime
- format
.Следовательно, strptime(dh,'%Y-%m-%d %I:%M:%S %p')
работает нормально, так как считает второй аргумент format
.
Но вторым аргументом для as.POSIXlt
является tz
.Следовательно, текст, предоставленный для рассмотрения как format
, принимается за tz
и используется значение по умолчанию format
.Это привело к неожиданному значению.