Author: adrianc
Date: Sat Jan  1 09:05:44 2011
New Revision: 1054211

URL: http://svn.apache.org/viewvc?rev=1054211&view=rev
Log:
Added two new UEL functions to make date/time display more user friendly. Form 
widget example:

<field name="someTimeStamp">
  <display description="${date:localizedDateTimeStr(someTimeStamp, timeZone, 
locale)}"/>
</field>

will display the date/time according to the user's locale, instead of 
yyyy-mm-dd hh:mm:ss.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/UelFunctions.java

Modified: 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/UelFunctions.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/UelFunctions.java?rev=1054211&r1=1054210&r2=1054211&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/UelFunctions.java 
(original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/UelFunctions.java 
Sat Jan  1 09:05:44 2011
@@ -70,7 +70,9 @@ import org.w3c.dom.Node;
  * <tr><td><code>date:yearStart(Timestamp, TimeZone, 
Locale)</code></td><td>Returns <code>Timestamp</code> set to start of 
year.</td></tr>
  * <tr><td><code>date:yearEnd(Timestamp, TimeZone, 
Locale)</code></td><td>Returns <code>Timestamp</code> set to end of 
year.</td></tr>
  * <tr><td><code>date:dateStr(Timestamp, TimeZone, 
Locale)</code></td><td>Returns <code>Timestamp</code> as a date 
<code>String</code> (yyyy-mm-dd).</td></tr>
+ * <tr><td><code>date:localizedDateStr(Timestamp, TimeZone, 
Locale)</code></td><td>Returns <code>Timestamp</code> as a date 
<code>String</code> formatted according to the supplied locale.</td></tr>
  * <tr><td><code>date:dateTimeStr(Timestamp, TimeZone, 
Locale)</code></td><td>Returns <code>Timestamp</code> as a date-time 
<code>String</code> (yyyy-mm-dd hh:mm).</td></tr>
+ * <tr><td><code>date:localizedDateTimeStr(Timestamp, TimeZone, 
Locale)</code></td><td>Returns <code>Timestamp</code> as a date-time 
<code>String</code> formatted according to the supplied locale.</td></tr>
  * <tr><td><code>date:timeStr(Timestamp, TimeZone, 
Locale)</code></td><td>Returns <code>Timestamp</code> as a time 
<code>String</code> (hh:mm).</td></tr>
  * <tr><td><code>date:nowTimestamp()</code></td><td>Returns <code>Timestamp 
</code> for right now.</td></tr>
  * <tr><td colspan="2"><b><code>math:</code> maps to 
<code>java.lang.Math</code></b></td></tr>
@@ -184,7 +186,8 @@ public class UelFunctions {
                 this.functionMap.put("date:yearStart", 
UtilDateTime.class.getMethod("getYearStart", Timestamp.class, TimeZone.class, 
Locale.class));
                 this.functionMap.put("date:yearEnd", 
UtilDateTime.class.getMethod("getYearEnd", Timestamp.class, TimeZone.class, 
Locale.class));
                 this.functionMap.put("date:dateStr", 
UelFunctions.class.getMethod("dateString", Timestamp.class, TimeZone.class, 
Locale.class));
-                this.functionMap.put("date:dateTimeStr", 
UelFunctions.class.getMethod("dateTimeString", Timestamp.class, TimeZone.class, 
Locale.class));
+                this.functionMap.put("date:localizedDateStr", 
UelFunctions.class.getMethod("localizedDateString", Timestamp.class, 
TimeZone.class, Locale.class));
+                this.functionMap.put("date:localizedDateTimeStr", 
UelFunctions.class.getMethod("localizedDateTimeString", Timestamp.class, 
TimeZone.class, Locale.class));
                 this.functionMap.put("date:timeStr", 
UelFunctions.class.getMethod("timeString", Timestamp.class, TimeZone.class, 
Locale.class));
                 this.functionMap.put("date:nowTimestamp", 
UtilDateTime.class.getMethod("nowTimestamp"));
                 this.functionMap.put("math:absDouble", 
Math.class.getMethod("abs", double.class));
@@ -278,12 +281,24 @@ public class UelFunctions {
         return dateFormat.format(stamp);
     }
 
+    public static String localizedDateString(Timestamp stamp, TimeZone 
timeZone, Locale locale) {
+        DateFormat dateFormat = UtilDateTime.toDateFormat(null, timeZone, 
locale);
+        dateFormat.setTimeZone(timeZone);
+        return dateFormat.format(stamp);
+    }
+
     public static String dateTimeString(Timestamp stamp, TimeZone timeZone, 
Locale locale) {
         DateFormat dateFormat = UtilDateTime.toDateTimeFormat("yyyy-MM-dd 
HH:mm", timeZone, locale);
         dateFormat.setTimeZone(timeZone);
         return dateFormat.format(stamp);
     }
 
+    public static String localizedDateTimeString(Timestamp stamp, TimeZone 
timeZone, Locale locale) {
+        DateFormat dateFormat = UtilDateTime.toDateTimeFormat(null, timeZone, 
locale);
+        dateFormat.setTimeZone(timeZone);
+        return dateFormat.format(stamp);
+    }
+
     public static String timeString(Timestamp stamp, TimeZone timeZone, Locale 
locale) {
         DateFormat dateFormat = 
UtilDateTime.toTimeFormat(UtilDateTime.TIME_FORMAT, timeZone, locale);
         dateFormat.setTimeZone(timeZone);


Reply via email to