diff --git a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
index 6751a1b..72bab92 100644
--- a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.ui; singleton:=true
-Bundle-Version: 1.5.305.qualifier
+Bundle-Version: 1.5.306.qualifier
 Bundle-Activator: org.eclipse.wst.server.ui.internal.ServerUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.ui/pom.xml b/plugins/org.eclipse.wst.server.ui/pom.xml
index 9ada1a6..aa1e4e1 100644
--- a/plugins/org.eclipse.wst.server.ui/pom.xml
+++ b/plugins/org.eclipse.wst.server.ui/pom.xml
@@ -22,6 +22,6 @@
 
   <groupId>org.eclipse.webtools.servertools</groupId>
   <artifactId>org.eclipse.wst.server.ui</artifactId>
-  <version>1.5.305-SNAPSHOT</version>
+  <version>1.5.306-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
index af2abb8..28ddcc7 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
@@ -386,6 +386,7 @@
 	public static String cacheUpdate_never;
 	public static String cacheUpdate_frequencyLabel;
 	public static String cacheUpdate_lastUpdatedOn;	
+	public static String cacheUpdate_lastUpdatedFormat;
 	
 	static {
 		NLS.initializeMessages(ServerUIPlugin.PLUGIN_ID + ".internal.Messages", Messages.class);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
index 277b4ab..474e44d 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
@@ -532,4 +532,8 @@
 cacheUpdate_lastUpdatedOn=Last updated on: 
 cacheUpdate_frequencyLabel=Update cache frequency:
 cacheUpdate_refreshing=Refreshing ...
-cacheUpdate_never=Never
\ No newline at end of file
+cacheUpdate_never=Never
+# cacheUpdate_lastUpdatedFormat is the date format, which can be re-arranged to match the 
+# format of the locale. EEE = day of the week, MMM = month, yyyy = year, kk = hour, mm = minutes, ss = seconds
+# zzz = time zone (e.g. EDT)
+cacheUpdate_lastUpdatedFormat=EEE MMM dd yyyy kk:mm:ss zzz
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerPreferencePage.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerPreferencePage.java
index 88c7917..6708a9a 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerPreferencePage.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerPreferencePage.java
@@ -11,6 +11,12 @@
 package org.eclipse.wst.server.ui.internal;
 
 
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.preference.PreferencePage;
@@ -39,6 +45,8 @@
 	protected Button refreshNow;
 	protected Text updateTime;
 	protected Combo updateCacheFrequencyCombo;
+	
+	public static final String CACHE_LAST_UPDATED_DATE_FORMAT = "EEE MMM dd yyyy kk:mm:ss zzz";
 
 	/**
 	 * ServerPreferencesPage constructor comment.
@@ -133,7 +141,23 @@
 		Label lastUpdatedLabel = new Label(cacheGroup, SWT.NONE);
 		lastUpdatedLabel.setText(Messages.cacheUpdate_lastUpdatedOn);
 		updateTime = new Text(cacheGroup, SWT.READ_ONLY);
-		updateTime.setText(Discovery.getLastUpdatedDate());
+		
+		String lastUpdatedDate = Discovery.getLastUpdatedDate();
+		lastUpdatedDate = lastUpdatedDate.trim();
+		// The cache's date is in English
+		DateFormat dfCached = new SimpleDateFormat(CACHE_LAST_UPDATED_DATE_FORMAT, Locale.ENGLISH);
+		// Need to covert the English date to the current locale's format
+		DateFormat dfCurrLocale = new SimpleDateFormat(Messages.cacheUpdate_lastUpdatedFormat, Locale.getDefault());
+		
+		Date d;
+		try {
+			d = dfCached.parse(lastUpdatedDate);
+			updateTime.setText(dfCurrLocale.format(d));
+		} catch (ParseException e1) {
+			// In case of failure, display what was cached
+			updateTime.setText(lastUpdatedDate);
+		}
+		
 		Dialog.applyDialogFont(composite);
 		
 		
