Это зависит от того, что вы используете и как вы собираетесь его использовать.
Оба объекта Date
и POSIXt
относятся к "1970-01-01 00:00:00 -00: 00". Date
«целочисленное» значение - это день, а POSIXt
«целое» - одна секунда.
Если вы используете Date
s, то, чтобы сделать это несколько конвертируемым, вы должны добавить «int» предыдущего 31 декабря (поскольку 1 января - юлианский день 1). На сегодня это было бы
as.Date("2017-12-31")
# [1] "2017-12-31"
as.numeric(as.Date("2017-12-31"))
# [1] 17531
так 17531 + fractionalDayofYear
.
Если вы используете POSIXt
, то вам нужно будет сделать две вещи: найти числовой компонент для времени и преобразовать ваш "integer-means-day" в секунды:
as.POSIXct("2017-12-31")
# [1] "2017-12-31 PST"
as.numeric(as.POSIXct("2017-12-31"))
# [1] 1514707200
(3600*24*fractionalDayofYear) + 1514707200
Обратите внимание, что это может неправильно обрабатывать переход на летнее время ...