Thanks to @Andy Baxter in the comments. Here is an effective workaround.
> perf3 <- perf2 %>%
+ select(first.half, second.half, t.reg.date2) %>%
+ mutate(t.reg.date3=parse_date_time(paste0(first.half, second.half), "%Y-%m-%d", exact = TRUE))
Warning message:
There was 1 warning in `mutate()`.
ℹ In argument: `t.reg.date3 = parse_date_time(...)`.
Caused by warning:
! 43047 failed to parse.