improve test coverage for ConstuctYamlTimestamp
diff --git a/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java b/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
index 450954a..911ac06 100644
--- a/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
+++ b/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
@@ -279,20 +279,19 @@
                 cal.set(Calendar.MINUTE, Integer.parseInt(min_s));

                 cal.set(Calendar.SECOND, Integer.parseInt(sec_s));

                 cal.set(Calendar.MILLISECOND, usec);

-                if (timezoneh_s != null || timezonem_s != null) {

+                if (timezoneh_s != null) {

                     int zone = 0;

                     int sign = +1;

-                    if (timezoneh_s != null) {

-                        if (timezoneh_s.startsWith("-")) {

-                            sign = -1;

-                        }

-                        zone += Integer.parseInt(timezoneh_s.substring(1)) * 3600000;

+                    if (timezoneh_s.startsWith("-")) {

+                        sign = -1;

                     }

+                    zone += Integer.parseInt(timezoneh_s.substring(1)) * 3600000;

                     if (timezonem_s != null) {

                         zone += Integer.parseInt(timezonem_s) * 60000;

                     }

                     cal.set(Calendar.ZONE_OFFSET, sign * zone);

                 } else {

+                    // no time zone provided

                     cal.setTimeZone(TimeZone.getTimeZone("UTC"));

                 }

                 return cal.getTime();

diff --git a/src/test/java/org/yaml/snakeyaml/types/TimestampTagTest.java b/src/test/java/org/yaml/snakeyaml/types/TimestampTagTest.java
index 9135c04..fc8b2c4 100644
--- a/src/test/java/org/yaml/snakeyaml/types/TimestampTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/TimestampTagTest.java
@@ -18,8 +18,17 @@
     public void testTimestamp() throws IOException {

         assertEquals("2001-12-15 at 2:59:43 (100)", getText("canonical: 2001-12-15T02:59:43.1Z",

                 "canonical"));

+        // zero miliseconds

+        assertEquals("2001-12-15 at 2:59:43 (0)", getText("canonical: 2001-12-15T02:59:43.000Z",

+                "canonical"));

         assertEquals("2001-12-15 at 2:59:43 (100)", getText(

                 "valid iso8601:    2001-12-14t21:59:43.10-05:00", "valid iso8601"));

+        // half hour time zone

+        assertEquals("2001-12-14 at 22:29:43 (100)", getText(

+                "valid iso8601:    2001-12-14t21:59:43.10-0:30", "valid iso8601"));

+        // + time zone

+        assertEquals("2001-12-14 at 19:59:43 (100)", getText(

+                "valid iso8601:    2001-12-14t21:59:43.10+2:00", "valid iso8601"));

         assertEquals("2001-12-15 at 2:59:43 (100)", getText(

                 "space separated:  2001-12-14 21:59:43.10 -5", "space separated"));

         assertEquals("2001-12-15 at 2:59:43 (100)", getText(