Using Time::Piece to parse would also mean we don't need the hashes above etc