Your goal is to create a converter that is easy to extend to handle additional formats and that keeps logic for any particular input or output format as separate as possible.
We prefer the latter option because it allows us to simply associate a custom converter (with built-in validation logic) with a specific object type and have JSF handle that object type.