package er.ajax.example2.helper; import java.util.Calendar; import com.webobjects.foundation.NSTimestamp; import com.webobjects.foundation.NSTimestampFormatter; import er.ajax.example2.util.DateUtils; public class NSTimestampHelper { public String format(NSTimestamp time) { return format(time, true); } public String format(NSTimestamp time, boolean useTimes) { if (time != null) { NSTimestampFormatter formatDateTime; if (useTimes) { formatDateTime = new NSTimestampFormatter("%m/%d/%Y %I:%M %p"); } else { formatDateTime = new NSTimestampFormatter("%m/%d/%Y"); } return formatDateTime.format(time); } return null; } public String mdy(NSTimestamp time) { if(time != null) { NSTimestampFormatter formatDateTime = new NSTimestampFormatter("%m/%d/%Y"); return formatDateTime.format(time); } return null; } public String ago(NSTimestamp time) { if(time != null) { return DateUtils.timeFromNow(time); } return ""; } public String timeOnly(NSTimestamp time) { if (time != null) { NSTimestampFormatter formatDateTime = new NSTimestampFormatter("%I:%M%p"); String results = formatDateTime.format(time); results = results.toLowerCase(); if(results.charAt(0) == '0') { results = results.subSequence(1, results.length()).toString(); } return results; } return null; } public String withDayName(NSTimestamp date, boolean includeTime) { return withDayName(date, includeTime, true); } public String withDayName(NSTimestamp date, boolean includeTime, boolean includeYear) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); StringBuilder buffer = new StringBuilder(); buffer.append(DateUtils.DAYS_OF_WEEK[calendar.get(Calendar.DAY_OF_WEEK) - 1]); buffer.append(", "); buffer.append(DateUtils.MONTHS[calendar.get(Calendar.MONTH)]); buffer.append(" "); buffer.append(calendar.get(Calendar.DATE)); if(includeYear) { buffer.append(" "); buffer.append(calendar.get(Calendar.YEAR)); buffer.append(" "); } if(includeTime) { int hour = calendar.get(Calendar.HOUR); if(hour == 0) hour = 12; buffer.append(hour); buffer.append(":"); int minute = calendar.get(Calendar.MINUTE); buffer.append(String.format("%02d", Integer.valueOf(minute))); buffer.append(""); if(calendar.get(Calendar.AM_PM) == Calendar.PM) { buffer.append("pm"); } else { buffer.append("am"); } } return buffer.toString(); } public String shortDateWithDayName(NSTimestamp date, boolean includeYear) { if(includeYear) { return DateUtils.SHORT_MONTH_NAME_AND_DAY_OF_WEEK_AND_YEAR_FORMATTER.format(date); } return DateUtils.SHORT_MONTH_NAME_AND_DAY_OF_WEEK_FORMATTER.format(date); } public String withMonthName(NSTimestamp date, boolean useTimes) { if(date == null) { return null; } Calendar calendar = Calendar.getInstance(); calendar.setTime(date); StringBuilder buffer = new StringBuilder(); buffer.append(DateUtils.MONTHS[calendar.get(Calendar.MONTH)]); buffer.append(" "); buffer.append(calendar.get(Calendar.DATE)); buffer.append(", "); buffer.append(calendar.get(Calendar.YEAR)); buffer.append(" "); if(useTimes) { int hour = calendar.get(Calendar.HOUR); if(hour == 0) hour = 12; buffer.append(hour); buffer.append(":"); int minute = calendar.get(Calendar.MINUTE); buffer.append(String.format("%02d", Integer.valueOf(minute))); buffer.append(""); if(calendar.get(Calendar.AM_PM) == Calendar.PM) { buffer.append(" PM"); } else { buffer.append(" AM"); } } return buffer.toString(); } }