tidyr and dplyr don't have date manipulation functions. lubridate is the tidyverse package for date functions (although it's not one of the "core" tidyverse packages loaded by the tidyverse library).
Based on the information you provided, it looks like your dates might not be in R Date format. The example below is converts the date column to Date format and then uses mutate_at to create separate columns for year, month, and day. This is similar to mishabalyasin's answer, but mutate_at allows all three functions to be applied to the date column with a single line of code.
library(tidyverse)
library(lubridate)
# Fake data
x = data.frame(date=c("2018 - 01 - 04", "2018 - 02 - 16"))
x = x %>%
mutate(date = ymd(date)) %>%
mutate_at(vars(date), funs(year, month, day))
x
date year month day
1 2018-01-04 2018 1 4
2 2018-02-16 2018 2 16