Отсутствует значение часового пояса в POSIXct в R и местное время - PullRequest
0 голосов
/ 02 апреля 2020

Вот мой пример:

my_time<- as.POSIXct("2020-02-01 06:20:09 UTC")

Он создает объект POSIXct, и если я печатаю его значение, я получаю

"2020-02-01 06:20:09 CST"

Если я запускаю

attributes(my_time)

Я получаю обратно

$class
[1] "POSIXct" "POSIXt" 

$tzone
[1] ""

Почему зона пуста, она четко отображается при печати значения переменной? Так что я предполагаю, что это привязка к местному часовому поясу. Могу ли я предотвратить это поведение?

1 Ответ

2 голосов
/ 02 апреля 2020

Потому что нет часового пояса, который вы определили. Хотя вы думаете, что определили часовой пояс, на самом деле as.POSIXct не читает индикатор 'UT C' в вашей строке.

Поэтому as.POSIXct не находит ваш часовой пояс.

Когда вы печатаете время, POSIXct не находит никакого часового пояса в объекте и предполагает, что вы подразумеваете свой часовой пояс, если часовой пояс не определен. Поэтому вы получаете часовой пояс вашего компьютера при печати объекта.

Например, когда я запускаю ваш код, я получаю:

> my_time<- as.POSIXct("2020-02-01 06:20:09 UTC")
> my_time
[1] "2020-02-01 06:20:09 CET"

Поэтому вы должны определить часовой пояс:

> my_time<- as.POSIXct("2020-02-01 06:20:09", tz='UTC')
> attributes(my_time)
$class
[1] "POSIXct" "POSIXt" 

$tzone
[1] "UTC"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...