Author: michiel
Date: 2010-05-17 15:54:19 +0200 (Mon, 17 May 2010)
New Revision: 42195

Modified:
   
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/DateHandler.java
Log:
MMB-1958

Modified: 
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/DateHandler.java
===================================================================
--- 
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/DateHandler.java
      2010-05-17 13:53:59 UTC (rev 42194)
+++ 
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/DateHandler.java
      2010-05-17 13:54:19 UTC (rev 42195)
@@ -47,8 +47,12 @@
     }
 
 
-    private Calendar getInstance() throws JspTagException {
-        return Calendar.getInstance(tag.getTimeZone());
+    private Calendar getInstance(DataType dt) throws JspTagException {
+        TimeZone tz = null;
+        if (dt instanceof DateTimeDataType) {
+            tz = ((DateTimeDataType) dt).getTimeZone();
+        }
+        return Calendar.getInstance(tz == null ? tag.getTimeZone() : tz);
     }
 
     protected DateTimePattern getPattern(DataType dt) throws JspTagException {
@@ -93,7 +97,7 @@
      */
     @Override
     protected Object getFieldValue(Node node, Field field) throws 
JspTagException {
-        Calendar cal = getSpecifiedValue(field, getInstance());
+        Calendar cal = getSpecifiedValue(field, 
getInstance(field.getDataType()));
         return cal == null ? null : cal.getTime();
     }
 
@@ -141,8 +145,8 @@
         }
         DataType dt = field.getDataType();
         DateTimePattern dateTimePattern = getPattern(dt);
-        Calendar minDate = getInstance();
-        Calendar maxDate = getInstance();
+        Calendar minDate = getInstance(dt);
+        Calendar maxDate = getInstance(dt);
         if (dt instanceof DateTimeDataType) {
             Date min = ((DateTimeDataType) dt).getMin();
             minDate.setTime(min);
@@ -262,7 +266,7 @@
     @Override
     public boolean useHtmlInput(Node node, Field field) throws JspTagException 
{
         final String fieldName = field.getName();
-        final Calendar cal = getInstance();
+        final Calendar cal = getInstance(field.getDataType());
         Object oldValue = node.getValue(fieldName);
         if (oldValue != null) {
             oldValue = node.getDateValue(fieldName);
@@ -299,9 +303,9 @@
         final String fieldName = field.getName();
         final DataType<Object> dt = field.getDataType();
         final DateTimePattern dateTimePattern = getPattern(dt);
-        final Calendar minDate = getInstance();
+        final Calendar minDate = getInstance(dt);
         minDate.setTime(DateTimeDataType.MIN_VALUE);
-        final Calendar maxDate = getInstance();
+        final Calendar maxDate = getInstance(dt);
         maxDate.setTime(DateTimeDataType.MAX_VALUE);
 
 
@@ -364,19 +368,19 @@
                 if (node.isNull(field.getName())) {
                     cal = null;
                 } else {
-                    cal = getInstance();
+                    cal = getInstance(field.getDataType());
                     cal.setTime(node.getDateValue(field.getName()));
                 }
             } else {
                 Object def = 
field.getDataType().getDefaultValue(tag.getLocale(), tag.getCloudVar(), field);
                 if (def != null) {
-                    cal = getInstance();
+                    cal = getInstance(field.getDataType());
                     cal.setTime(Casting.toDate(def));
                 } else {
                     if (! field.getDataType().isRequired()) {
                         cal = null;
                     }  else {
-                        cal = getInstance();
+                        cal = getInstance(field.getDataType());
                     }
                 }
             }
@@ -395,7 +399,7 @@
             return null;
         }
 
-        Date timeValue = getSpecifiedValue(field, getInstance()).getTime();
+        Date timeValue = getSpecifiedValue(field, 
getInstance(field.getDataType())).getTime();
 
         String time;
         if (field.getType() == Field.TYPE_DATETIME) {
@@ -430,7 +434,7 @@
             return null;
         }
 
-        Object time = getSpecifiedValue(field, getInstance()).getTime();
+        Object time = getSpecifiedValue(field, 
getInstance(field.getDataType())).getTime();
         if (field.getType() != Field.TYPE_DATETIME) {
             time = Casting.toLong(time);
         }

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to