Add strftime grammar builder

- raise an error on failed grammar construction instead of returning nil