From 9b26b74d198aa4efbe4b25f6667b98eb5261e13d Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 31 May 2013 20:08:50 -0400 Subject: [PATCH] Refinements to push log display and daily digests --- src/main/java/com/gitblit/utils/TimeUtils.java | 24 ++++++++++++++++++------ 1 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/gitblit/utils/TimeUtils.java b/src/main/java/com/gitblit/utils/TimeUtils.java index ec8871c..9b5927c 100644 --- a/src/main/java/com/gitblit/utils/TimeUtils.java +++ b/src/main/java/com/gitblit/utils/TimeUtils.java @@ -20,6 +20,7 @@ import java.util.Calendar; import java.util.Date; import java.util.ResourceBundle; +import java.util.TimeZone; /** * Utility class of time functions. @@ -40,12 +41,15 @@ private final ResourceBundle translation; + private final TimeZone timezone; + public TimeUtils() { - this(null); + this(null, null); } - public TimeUtils(ResourceBundle translation) { + public TimeUtils(ResourceBundle translation, TimeZone timezone) { this.translation = translation; + this.timezone = timezone; } /** @@ -54,8 +58,13 @@ * @param date * @return true if date is today */ - public static boolean isToday(Date date) { - return (System.currentTimeMillis() - date.getTime()) < ONEDAY; + public static boolean isToday(Date date, TimeZone timezone) { + Date now = new Date(); + SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); + if (timezone != null) { + df.setTimeZone(timezone); + } + return df.format(now).equals(df.format(date)); } /** @@ -64,11 +73,14 @@ * @param date * @return true if date is yesterday */ - public static boolean isYesterday(Date date) { + public static boolean isYesterday(Date date, TimeZone timezone) { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.DATE, -1); SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); + if (timezone != null) { + df.setTimeZone(timezone); + } return df.format(cal.getTime()).equals(df.format(date)); } @@ -205,7 +217,7 @@ * @return the string representation of the duration OR the css class */ private String timeAgo(Date date, boolean css) { - if (isToday(date) || isYesterday(date)) { + if (isToday(date, timezone) || isYesterday(date, timezone)) { int mins = minutesAgo(date, true); if (mins >= 120) { if (css) { -- Gitblit v1.9.1