Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/externalization/DelegatingTaskExternalizer.java16
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java25
2 files changed, 33 insertions, 8 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/externalization/DelegatingTaskExternalizer.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/externalization/DelegatingTaskExternalizer.java
index 707610c77..c2c023c37 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/externalization/DelegatingTaskExternalizer.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/externalization/DelegatingTaskExternalizer.java
@@ -53,9 +53,9 @@ import org.eclipse.mylyn.tasks.core.IAttributeContainer;
import org.eclipse.mylyn.tasks.core.IRepositoryManager;
import org.eclipse.mylyn.tasks.core.IRepositoryQuery;
import org.eclipse.mylyn.tasks.core.ITask;
-import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.mylyn.tasks.core.ITask.PriorityLevel;
import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState;
+import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -70,12 +70,15 @@ import org.w3c.dom.NodeList;
*
* @author Mik Kersten
* @author Steffen Pingel
+ * @author Mike Wu
*/
public final class DelegatingTaskExternalizer {
static final String DEFAULT_PRIORITY = PriorityLevel.P3.toString();
- static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.S z"; //$NON-NLS-1$
+ static final String OUT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.S Z"; //$NON-NLS-1$
+
+ static final String IN_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.S z"; //$NON-NLS-1$
static final String KEY_NOTIFIED_INCOMING = "NotifiedIncoming"; //$NON-NLS-1$
@@ -347,8 +350,7 @@ public final class DelegatingTaskExternalizer {
if (date == null) {
return ""; //$NON-NLS-1$
}
- String f = DATE_FORMAT;
- SimpleDateFormat format = new SimpleDateFormat(f, Locale.ENGLISH);
+ SimpleDateFormat format = new SimpleDateFormat(OUT_DATE_FORMAT, Locale.ENGLISH);
return format.format(date);
}
@@ -356,8 +358,7 @@ public final class DelegatingTaskExternalizer {
if (date == null) {
return ""; //$NON-NLS-1$
}
- String f = DATE_FORMAT;
- SimpleDateFormat format = new SimpleDateFormat(f, Locale.ENGLISH);
+ SimpleDateFormat format = new SimpleDateFormat(OUT_DATE_FORMAT, Locale.ENGLISH);
return format.format(date.getTime());
}
@@ -638,8 +639,7 @@ public final class DelegatingTaskExternalizer {
if ("".equals(dateString)) { //$NON-NLS-1$
return null;
}
- String formatString = DATE_FORMAT;
- SimpleDateFormat format = new SimpleDateFormat(formatString, Locale.ENGLISH);
+ SimpleDateFormat format = new SimpleDateFormat(IN_DATE_FORMAT, Locale.ENGLISH);
try {
date = format.parse(dateString);
} catch (ParseException e) {
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java
index 64f0b716a..df5de0c2a 100644
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java
+++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java
@@ -17,6 +17,7 @@ import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
+import java.util.TimeZone;
import junit.framework.TestCase;
@@ -44,6 +45,7 @@ import org.eclipse.mylyn.tasks.ui.TasksUi;
/**
* @author Robert Elves
* @author Steffen Pingel
+ * @author Mike Wu
*/
public class TaskListExternalizationTest extends TestCase {
@@ -583,6 +585,29 @@ public class TaskListExternalizationTest extends TestCase {
assertEquals(task.getScheduledForDate(), readTask.getScheduledForDate());
}
+ // test case for bug 342086
+ public void testDatesTimeZone() throws Exception {
+ TaskTestUtil.resetTaskListAndRepositories();
+
+ TimeZone.setDefault(TimeZone.getTimeZone("PRC"));
+ AbstractTask task = new LocalTask("1", "task 1");
+ Date creationDate = new Date();
+ task.setCreationDate(creationDate);
+ TasksUiPlugin.getTaskList().addTask(task);
+ assertEquals(1, TasksUiPlugin.getTaskList().getAllTasks().size());
+
+ TaskTestUtil.saveNow();
+ TimeZone.setDefault(TimeZone.getTimeZone("CST"));
+ TaskTestUtil.resetTaskList();
+ TasksUiPlugin.getDefault().initializeDataSources();
+
+ assertEquals(1, TasksUiPlugin.getTaskList().getAllTasks().size());
+ Collection<ITask> readList = TasksUiPlugin.getTaskList().getDefaultCategory().getChildren();
+ ITask readTask = readList.iterator().next();
+ assertTrue(readTask.getSummary().equals("task 1"));
+ assertTrue(readTask.getCreationDate().compareTo(creationDate) == 0);
+ }
+
// Task retention when connector missing upon startup
public void testOrphanedTasks() throws Exception {
// make some tasks

Back to the top