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