1. Andrey Somov
  2. snakeyaml
  3. Issues

Issues

Issue #364 resolved

Serializing Calendar objects with certain timezone offsets renders invalid yaml

Oscar Scholten
created an issue

Hi,

Serializing Calendar objects with certain timezone offsets renders invalid YAML. The below unit test showcases the problem:

public void testTimestampNegativeTimezoneOffset() {
    Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-1:15"));
    cal.clear();
    cal.set(2008, 8, 23, 14, 35, 4);
    Map<String, Calendar> map = new HashMap<String, Calendar>();
    map.put("canonical", cal);
    String output = dump(map);
    assertEquals("{canonical: !!timestamp '2008-09-23T14:35:04-01:15'}\n", output);
}

Using SnakeYaml 1.18, the output is:

{canonical: !!timestamp '2008-09-23T14:35:04-1:0-15'}

Which is not valid YAML and thus SnakeYaml cannot read it's own output.

I'll send a pull request with a fix shortly.

Cheers, Oscar

Comments (4)

  1. Oscar Scholten reporter

    Several other offsets that are rendered incorrectly are "GMT+00:30" and "GMT+00:00", output is "2008-09-23T14:35:040:30" and "2008-09-23T14:35:040:00" respectively.

  2. Log in to comment