summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libexslt/date.c2
-rw-r--r--tests/exslt/date/seconds.1.out16
-rw-r--r--tests/exslt/date/seconds.1.xml9
3 files changed, 26 insertions, 1 deletions
diff --git a/libexslt/date.c b/libexslt/date.c
index b692bb42..18523d02 100644
--- a/libexslt/date.c
+++ b/libexslt/date.c
@@ -1602,7 +1602,7 @@ exsltDateNormalize (exsltDateValPtr dt)
if (dt == NULL)
return;
- if (((dt->type & XS_TIME) != XS_TIME) || (dt->value.date.tzo == 0))
+ if (((dt->type & XS_TIME) != XS_TIME) && (dt->value.date.tzo == 0))
return;
dur = exsltDateCreateDate(XS_DURATION);
diff --git a/tests/exslt/date/seconds.1.out b/tests/exslt/date/seconds.1.out
index 3447bf87..c0eb72c0 100644
--- a/tests/exslt/date/seconds.1.out
+++ b/tests/exslt/date/seconds.1.out
@@ -35,3 +35,19 @@ seconds : 0001-01-01T00:00:00
result : -6.21355968e+10
seconds : -0001-01-01T00:00:00
result : -6.21671328e+10
+seconds : 1970-01-01
+result : 0
+seconds : 1970-01-01Z
+result : 0
+seconds : 1970-01-01-11:00
+result : 39600
+seconds : 1970-01-01+11:00
+result : -39600
+seconds : 1970-01-01-12:00
+result : 43200
+seconds : 1970-01-01+12:00
+result : -43200
+seconds : 1970-01-01-13:00
+result : 46800
+seconds : 1970-01-01+13:00
+result : -46800
diff --git a/tests/exslt/date/seconds.1.xml b/tests/exslt/date/seconds.1.xml
index 5e0a664f..24d58fb2 100644
--- a/tests/exslt/date/seconds.1.xml
+++ b/tests/exslt/date/seconds.1.xml
@@ -20,5 +20,14 @@
<date duration="1971-01-01T00:00:00"/>
<date duration="0001-01-01T00:00:00"/>
<date duration="-0001-01-01T00:00:00"/>
+ <!-- timezones -->
+ <date duration="1970-01-01" />
+ <date duration="1970-01-01Z" />
+ <date duration="1970-01-01-11:00" />
+ <date duration="1970-01-01+11:00" />
+ <date duration="1970-01-01-12:00" />
+ <date duration="1970-01-01+12:00" />
+ <date duration="1970-01-01-13:00" />
+ <date duration="1970-01-01+13:00" />
</page>