svn commit: r792353 - in /ofbiz/trunk/framework/base/src/org/ofbiz/base/util: DateRange.java UtilDateTime.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r792353 - in /ofbiz/trunk/framework/base/src/org/ofbiz/base/util: DateRange.java UtilDateTime.java

adrianc
Author: adrianc
Date: Wed Jul  8 23:14:15 2009
New Revision: 792353

URL: http://svn.apache.org/viewvc?rev=792353&view=rev
Log:
Small fix for DateRange.java - made the default range smaller. For some reason, external programs have problems with dates in the range of 2 million BC to 2 million AD.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/DateRange.java
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/DateRange.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/DateRange.java?rev=792353&r1=792352&r2=792353&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/DateRange.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/DateRange.java Wed Jul  8 23:14:15 2009
@@ -26,9 +26,9 @@
 @SuppressWarnings("serial")
 public class DateRange implements Serializable {
     /** A <code>Date</code> instance initialized to the earliest possible date.*/
-    public static final Date MIN_DATE = new Date(Long.MIN_VALUE);
+    public static final Date MIN_DATE = UtilDateTime.getEarliestDate();
     /** A <code>Date</code> instance initialized to the latest possible date.*/
-    public static final Date MAX_DATE = new Date(Long.MAX_VALUE);
+    public static final Date MAX_DATE = UtilDateTime.getLatestDate();
     /** A <code>DateRange</code> instance initialized to the widest possible range of dates.*/
     public static final DateRange FullRange = new DateRange();
 

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java?rev=792353&r1=792352&r2=792353&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilDateTime.java Wed Jul  8 23:14:15 2009
@@ -1138,4 +1138,31 @@
         Calendar cal = UtilDateTime.toCalendar(stamp, timeZone, locale);
         return cal.get(Calendar.YEAR);
     }
+
+    public static Date getEarliestDate() {
+        // According to java.util.Calendar docs, earliest accurate date
+        // using Gregorian calendar is March 1, 4 AD.
+        Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+        cal.set(Calendar.YEAR, 4);
+        cal.set(Calendar.MONTH, Calendar.MARCH);
+        cal.set(Calendar.DAY_OF_MONTH, 1);
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+        return cal.getTime();
+    }
+
+    public static Date getLatestDate() {
+        // Return last day of 2999 AD.
+        Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
+        cal.set(Calendar.YEAR, 2999);
+        cal.set(Calendar.MONTH, cal.getActualMaximum(Calendar.MONTH));
+        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+        cal.set(Calendar.HOUR_OF_DAY, 23);
+        cal.set(Calendar.MINUTE, 59);
+        cal.set(Calendar.SECOND, 59);
+        cal.set(Calendar.MILLISECOND, 999);
+        return cal.getTime();
+    }
 }