I not completly happy with your solution. That mean that one person, serializing its model in a given Locale won't be able to handle the xml file to someone else in another Locale.
That's not satisfying, from my point of view.
Here is another path, providing the following:
- Reader / Writer use Locale.US to read and write date. This way, no problem with the user Locale.
- For test purpose, we assert TimeZone America/New_York as default, so that dates are written as expected.
To me this solution would be more convenient (test is working here as well, when I'm changing my Locale).