In the previous recipe, we were writing a simple parser for date. Imagine that some time has passed and the task has changed. Now, we need to write a date-time parser that supports multiple input formats and zone offsets. Our parser must understand the following inputs:
2012-10-20T10:00:00Z // date time with zero zone offset
2012-10-20T10:00:00 // date time without zone offset
2012-10-20T10:00:00+09:15 // date time with zone offset
2012-10-20-09:15 // date time with zone offset
10:00:09+09:15 // time with zone offset