Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -r53688d3b79ba27a37f907f35d38c4e3385596663 -r2571c8a7cb60a9ced60bec52c5543b648c1360a3
Binary files differ
Index: lams_common/src/java/org/lamsfoundation/lams/util/DateUtil.java
===================================================================
diff -u -r6f7031f1ac1eb389133a9c306cc6ea178eb88573 -r2571c8a7cb60a9ced60bec52c5543b648c1360a3
--- lams_common/src/java/org/lamsfoundation/lams/util/DateUtil.java (.../DateUtil.java) (revision 6f7031f1ac1eb389133a9c306cc6ea178eb88573)
+++ lams_common/src/java/org/lamsfoundation/lams/util/DateUtil.java (.../DateUtil.java) (revision 2571c8a7cb60a9ced60bec52c5543b648c1360a3)
@@ -30,9 +30,16 @@
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
+import java.util.Locale;
import java.util.TimeZone;
+import javax.servlet.http.HttpSession;
+import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
+import org.lamsfoundation.lams.web.session.SessionManager;
+import org.lamsfoundation.lams.web.util.AttributeNames;
+
+
/**
* Date utility class that helps the conversion between time
*
@@ -46,7 +53,6 @@
public static final String WDDX_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ";
public static final String LAMS_FLASH_FORMAT = "dd/M/yyyy h:mm a";
- private static final DateFormat JSON_DATE_OUTPUT_FORMATTER = new SimpleDateFormat("d MMMM yyyy h:mm:ss a");
/**
* Convert your local time to Universal Time Coordinator.
@@ -185,11 +191,82 @@
}
- /**
- * Convert a date to a String for sending to the client via JSON.
+ private static final int TYPE_BOTH = 1;
+ private static final int TYPE_DATE = 2;
+ private static final int TYPE_TIME = 3;
+
+ /**
+ * Equivalent of . Use for processing a date to send to the client via JSON.
+ * Locale comes from request.getLocale();
+ * Same as calling convertToStringForJSON(value, DateFormat.MEDIUM, TYPE_BOTH, locale)
+ * @param value
+ * @param locale
+ * @return
*/
- public static String convertToStringForJSON(Date date) {
- return JSON_DATE_OUTPUT_FORMATTER.format(date);
+ public static String convertToStringForJSON(Date value, Locale locale) {
+ return convertToStringForJSON(value, DateFormat.MEDIUM, TYPE_BOTH, locale);
}
+ /**
+ * Equivalent of . Use for processing a date to send to the client via JSON.
+ * Locale comes from request.getLocale();
+ * @param value
+ * @param style DateFormat.MEDIUM, DateFormat.SHORT, DateFormat.FULL
+ * @param type TYPE_BOTH (both data and time), TYPE_DATE or TYPE_TIME
+ * @param locale
+ * @return
+ */
+ public static String convertToStringForJSON(Date value, Integer style, Locale locale) {
+ return convertToStringForJSON(value, style, TYPE_BOTH, locale);
+ }
+
+
+ /**
+ * Equivalent of . Use for processing a date to send to the client via JSON.
+ * Locale comes from request.getLocale();
+ * @param value
+ * @param type TYPE_BOTH (both data and time), TYPE_DATE or TYPE_TIME
+ * @param locale
+ * @return
+ */
+ public static String convertToStringForJSON(Date value, Integer style, Integer type, Locale locale) {
+
+ HttpSession ss = SessionManager.getSession();
+ UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);
+ TimeZone tz = user.getTimeZone();
+
+ int dateStyle, timeStyle;
+ switch (style) {
+ case DateFormat.SHORT:
+ dateStyle = DateFormat.SHORT;
+ timeStyle = DateFormat.SHORT;
+ break;
+ case DateFormat.FULL:
+ dateStyle = DateFormat.LONG;
+ timeStyle = DateFormat.FULL;
+ break;
+ default:
+ dateStyle = DateFormat.LONG;
+ timeStyle = DateFormat.MEDIUM;
+ }
+
+ DateFormat df = null;
+ switch (type) {
+ case TYPE_DATE:
+ df = DateFormat.getDateInstance(dateStyle, locale);
+ break;
+ case TYPE_TIME:
+ df = DateFormat.getTimeInstance(timeStyle, locale);
+ break;
+ default:
+ df = DateFormat.getDateTimeInstance(dateStyle, timeStyle, locale);
+ }
+
+ if (tz != null)
+ df.setTimeZone(tz);
+
+ return df.format(value);
+ }
+
+
}