The problem has actually not much to do with FreeMarker, but with Java's data/time formatting. If you look at what it says about "Z" here:
then it turns out that "Z" expects RFC 822 time zone format. That is, it can't contain colon. It should be like "-0500" instead of "-05:00".