You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2005/10/18 20:34:41 UTC
svn commit: r326197 -
/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java
Author: agilliland
Date: Tue Oct 18 11:34:36 2005
New Revision: 326197
URL: http://svn.apache.org/viewcvs?rev=326197&view=rev
Log:
fixing pubtime conversions to handle various timezones better.
Modified:
incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java
Modified: incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java?rev=326197&r1=326196&r2=326197&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/presentation/weblog/formbeans/WeblogEntryFormEx.java Tue Oct 18 11:34:36 2005
@@ -2,9 +2,11 @@
import java.sql.Timestamp;
import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.TimeZone;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
@@ -27,6 +29,7 @@
import org.roller.presentation.forms.WeblogEntryForm;
import org.roller.util.DateUtil;
+
/**
* Extends the WeblogEntryForm so that additional properties may be added.
* @struts.form name="weblogEntryFormEx"
@@ -99,28 +102,28 @@
super.copyTo(entry, locale);
- // First parts the date string from the calendar
- final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale);
- Date newDate = null;
- try
- {
- if(getDateString() != null && !"0/0/0".equals(getDateString()))
- newDate = df.parse(getDateString());
- }
- catch (ParseException e)
- {
- throw new RollerException("ERROR parsing date.");
- }
-
- // Now handle the time from the hour, minute and second combos
- if(newDate != null) {
- final Calendar cal = Calendar.getInstance(locale);
- cal.setTime(newDate);
- cal.setTimeZone(entry.getWebsite().getTimeZoneInstance());
- cal.set(Calendar.HOUR_OF_DAY, getHours().intValue());
- cal.set(Calendar.MINUTE, getMinutes().intValue());
- cal.set(Calendar.SECOND, getSeconds().intValue());
- entry.setPubTime(new Timestamp(cal.getTimeInMillis()));
+ // calculate date for pubtime
+ if(getDateString() != null && !"0/0/0".equals(getDateString())) {
+ Date pubtime = null;
+
+ TimeZone timezone = entry.getWebsite().getTimeZoneInstance();
+ try {
+ // gather submitted pubtime in a string
+ String time = getHours()+":"+getMinutes()+":"+getSeconds();
+ String datetime = getDateString()+" "+time;
+ mLogger.debug("datetime = "+datetime);
+
+ // now parse pubtime in a timezone sensitive manner
+ SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy HH:mm:ss");
+ sdf.setTimeZone(timezone);
+ pubtime = sdf.parse(datetime);
+ entry.setPubTime(new Timestamp(pubtime.getTime()));
+
+ } catch(Exception e) {
+ mLogger.error(e);
+ }
+
+ mLogger.debug("set pubtime to "+entry.getPubTime());
}
entry.setPlugins( StringUtils.join(this.pluginsArray,",") );
@@ -235,6 +238,7 @@
DateFormat df = DateFormat.getDateInstance(
DateFormat.SHORT, locale);
+ df.setTimeZone(website.getTimeZoneInstance());
mDateString = df.format(getPubTime());
} else {