Here are the list of format that MAY require timezone to be set:
src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java: return
format.format(getPubTime());
src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java: return
format.format(getUpdateTime());
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java:
dateString = mStarDateFormat.format(
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java:
sb.append( mSingleDayFormat.format( day ) );
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java:
sb.append( mSingleDayFormat.format( day ) );
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.java:
dateString = mStarDateFormat.format(entry.getPubTime());
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java:
pw.print( formatTitle.format(day) );
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.java:
mDayNames[dnum] = dayFormatter.format(dayNameCal.getTime());
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java:
return DateUtil.format(date,format);
src/java/org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.java:
return DateUtil.format(date,format);
src/java/org/apache/roller/weblogger/ui/rendering/model/UtilitiesModel.java:
return format.format(d);
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java:
return messageUtils.getString("weblogEntriesPager.day.next", new Object[]
{dayFormat.format(day)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java:
return messageUtils.getString("weblogEntriesPager.day.prev", new Object[]
{dayFormat.format(day)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java:
return messageUtils.getString("weblogEntriesPager.day.nextCollection", new
Object[] {dayFormat.format(nextDay)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesDayPager.java:
return messageUtils.getString("weblogEntriesPager.day.prevCollection", new
Object[] {dayFormat.format(prevDay)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java:
return messageUtils.getString("weblogEntriesPager.month.next", new Object[]
{monthFormat.format(month)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java:
return messageUtils.getString("weblogEntriesPager.month.prev", new Object[]
{monthFormat.format(month)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java:
return messageUtils.getString("weblogEntriesPager.month.nextCollection", new
Object[] {monthFormat.format(nextMonth)});
src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesMonthPager.java:
return messageUtils.getString("weblogEntriesPager.month.prevCollection", new
Object[] {monthFormat.format(prevMonth)});
--- On Mon, 11/16/09, Jery Wang <[email protected]> wrote:
From: Jery Wang <[email protected]>
Subject: Bug in roller calendar due to different timezone between java vm
timezone and weblog (user) timezone
To: [email protected]
Date: Monday, November 16, 2009, 4:53 AM
Hi,
I am not sure if others had this bug before:
1. Java JVM use timezone A
2. User use timezone B where timezone A and B more than 12 hours. Because
roller shift the hours to noon.
3. the date that has entry has url different from what is shown. For example,
clicking November 16 will show entry November 15 because the url is 20091115
I made patch:
---
roller_trunk_org/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java
2009-11-08 00:18:10.582128527 +1100
+++
roller_trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java
2009-11-16 23:34:07.130778563 +1100
@@ -1099,6 +1099,7 @@
}
SimpleDateFormat formatter = DateUtil.get8charDateFormat();
+ formatter.setTimeZone(website.getTimeZoneInstance());
for (Iterator wbItr = entries.iterator(); wbItr.hasNext();) {
WeblogEntry entry = (WeblogEntry) wbItr.next();
Date sDate = DateUtil.getNoonOfDay(entry.getPubTime(), cal);
Please verify if this is necessary. I checked the result is correct, i.e.,
clicking November 16 will show entry with url contains 20091116
If this is a bug, I did
grep --regexp="\.format\b" * -R | sed '/build/d' | sed '/\.svn/d' | sed
'/Binary/d' | sed '/docs/d' | sed '/^web\//d' | less
inside apps/weblogger and there are some SimpleDateFormat format being used
without setting it with the correct timezone. But I have difficulties to decide
which one needs to set its timezone with the website (user) timezone.
Anyone can help?
Regards,
Jery