diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
index 5ae3009ee0e6bb6435976580f374539ee6920113..754ea81487b0fd14b23e47e91b30b77e0acad5b7 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -31,6 +31,7 @@ import net.i2p.data.DataHelper;
 import net.i2p.data.Hash;
 import net.i2p.util.Log;
 import net.i2p.util.SecureFile;
+import net.i2p.util.SystemVersion;
 import net.i2p.util.Translate;
 
 import org.klomp.snark.I2PSnarkUtil;
@@ -2802,7 +2803,7 @@ public class I2PSnarkServlet extends BasicServlet {
                 }
                 long dat = meta.getCreationDate();
                 SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-                fmt.setTimeZone(DataHelper.getSystemTimeZone(_context));
+                fmt.setTimeZone(SystemVersion.getSystemTimeZone(_context));
                 if (dat > 0) {
                     String date = fmt.format(new Date(dat));
                     buf.append("<tr><td>");
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ConnThrottler.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ConnThrottler.java
index de9188d8e516c9caf393dbf8cdbe9fe779ec9513..26c46e431fd0e372b5c9c0e46de7ead8bd592ec7 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ConnThrottler.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ConnThrottler.java
@@ -8,12 +8,12 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
-import net.i2p.I2PAppContext;
 import net.i2p.data.DataHelper;
 import net.i2p.data.Hash;
 import net.i2p.util.Clock;
 import net.i2p.util.Log;
 import net.i2p.util.SimpleTimer2;
+import net.i2p.util.SystemVersion;
 
 /**
  * Count how often something happens with a particular peer and all peers.
@@ -56,7 +56,7 @@ class ConnThrottler {
         _log = log;
         // for logging
         _fmt = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM);
-        _fmt.setTimeZone(DataHelper.getSystemTimeZone(I2PAppContext.getGlobalContext()));
+        _fmt.setTimeZone(SystemVersion.getSystemTimeZone());
         new Cleaner();
     }
 
diff --git a/apps/routerconsole/java/src/net/i2p/router/news/NewsManager.java b/apps/routerconsole/java/src/net/i2p/router/news/NewsManager.java
index 35da6b38745075b692301c165a3bcca31f6a3902..44c2fcdc741e5cd98db8c108af9101fe39716cb4 100644
--- a/apps/routerconsole/java/src/net/i2p/router/news/NewsManager.java
+++ b/apps/routerconsole/java/src/net/i2p/router/news/NewsManager.java
@@ -19,6 +19,7 @@ import static net.i2p.app.ClientAppState.*;
 import net.i2p.data.DataHelper;
 import net.i2p.util.FileUtil;
 import net.i2p.util.Log;
+import net.i2p.util.SystemVersion;
 import net.i2p.util.TranslateReader;
 
 import org.cybergarage.xml.Node;
@@ -233,7 +234,7 @@ public class NewsManager implements ClientApp {
                     //  Doesn't work if the date has a : in it, but SHORT hopefully does not
                     DateFormat fmt = DateFormat.getDateInstance(DateFormat.SHORT);
                     // the router sets the JVM time zone to UTC but saves the original here so we can get it
-                    fmt.setTimeZone(DataHelper.getSystemTimeZone(_context));
+                    fmt.setTimeZone(SystemVersion.getSystemTimeZone(_context));
                     try {
                         Date date = fmt.parse(newsContent.substring(0, colon));
                         entry.updated = date.getTime();
diff --git a/apps/routerconsole/java/src/net/i2p/router/update/NewsFetcher.java b/apps/routerconsole/java/src/net/i2p/router/update/NewsFetcher.java
index 5c800bf038cd5a015feddeb8add938fac4415977..f57d6d7c0dd24c6927266c2886c889cf551e9e01 100644
--- a/apps/routerconsole/java/src/net/i2p/router/update/NewsFetcher.java
+++ b/apps/routerconsole/java/src/net/i2p/router/update/NewsFetcher.java
@@ -43,6 +43,7 @@ import net.i2p.util.PortMapper;
 import net.i2p.util.ReusableGZIPInputStream;
 import net.i2p.util.SecureFileOutputStream;
 import net.i2p.util.SSLEepGet;
+import net.i2p.util.SystemVersion;
 import net.i2p.util.Translate;
 import net.i2p.util.VersionComparator;
 
@@ -589,7 +590,7 @@ class NewsFetcher extends UpdateRunner {
                 return;
             DateFormat fmt = DateFormat.getDateInstance(DateFormat.SHORT);
             // the router sets the JVM time zone to UTC but saves the original here so we can get it
-            fmt.setTimeZone(DataHelper.getSystemTimeZone(_context));
+            fmt.setTimeZone(SystemVersion.getSystemTimeZone(_context));
             for (NewsEntry e : entries) {
                 if (e.title == null || e.content == null)
                     continue;
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/EventLogHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/EventLogHelper.java
index 01ac1614bbcb545f509d81f35ba22a3fd4720c86..9dd7892f2801fadcb57b7b1e4ecba18d8c4d93f2 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/EventLogHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/EventLogHelper.java
@@ -16,6 +16,7 @@ import java.util.TreeMap;
 
 import net.i2p.data.DataHelper;
 import net.i2p.router.util.EventLog;
+import net.i2p.util.SystemVersion;
 
 /**
  *  /events.jsp
@@ -188,7 +189,7 @@ public class EventLogHelper extends FormHandler {
 
         SimpleDateFormat fmt = (SimpleDateFormat) DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM);
         // the router sets the JVM time zone to UTC but saves the original here so we can get it
-        fmt.setTimeZone(DataHelper.getSystemTimeZone(_context));
+        fmt.setTimeZone(SystemVersion.getSystemTimeZone(_context));
 
         List<Map.Entry<Long, String>> entries = new ArrayList<Map.Entry<Long, String>>(events.entrySet());
         Collections.reverse(entries);
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NewsFeedHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/NewsFeedHelper.java
index 07dfa58546fe9967e6f3b612d9efaa5883842f99..5eaa3e3625ce662be63c37f1fd2226d9f8a8bbbb 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/NewsFeedHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/NewsFeedHelper.java
@@ -10,6 +10,7 @@ import net.i2p.app.ClientAppManager;
 import net.i2p.data.DataHelper;
 import net.i2p.router.news.NewsEntry;
 import net.i2p.router.news.NewsManager;
+import net.i2p.util.SystemVersion;
 
 
 /**
@@ -55,7 +56,7 @@ public class NewsFeedHelper extends HelperBase {
         if (!entries.isEmpty()) {
             DateFormat fmt = DateFormat.getDateInstance(DateFormat.SHORT);
             // the router sets the JVM time zone to UTC but saves the original here so we can get it
-            fmt.setTimeZone(DataHelper.getSystemTimeZone(ctx));
+            fmt.setTimeZone(SystemVersion.getSystemTimeZone(ctx));
             int i = 0;
             for (NewsEntry entry : entries) {
                 if (i++ < start)
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
index 710ce2753ddd483e2fc53514f61087bf3d6b95af..07664b2ee4aedb135a154cff463f8540eb5af7f7 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryBarRenderer.java
@@ -633,7 +633,7 @@ public class SummaryBarRenderer {
                 buf.append("<ul>\n");
                 DateFormat fmt = DateFormat.getDateInstance(DateFormat.SHORT);
                 // the router sets the JVM time zone to UTC but saves the original here so we can get it
-                fmt.setTimeZone(DataHelper.getSystemTimeZone(_context));
+                fmt.setTimeZone(SystemVersion.getSystemTimeZone(_context));
                 int i = 0;
                 final int max = 2;
                 for (NewsEntry entry : entries) {
diff --git a/apps/susidns/src/java/src/i2p/susi/dns/FormatDate.java b/apps/susidns/src/java/src/i2p/susi/dns/FormatDate.java
index c7604a213fff50bcb6efa34dd5f440c7f5eb37e1..cc582d3c98bc78159cbd9e121c784563560317f3 100644
--- a/apps/susidns/src/java/src/i2p/susi/dns/FormatDate.java
+++ b/apps/susidns/src/java/src/i2p/susi/dns/FormatDate.java
@@ -3,8 +3,7 @@ package i2p.susi.dns;
 import java.util.Date;
 import java.text.DateFormat;
 
-import net.i2p.I2PAppContext;
-import net.i2p.data.DataHelper;
+import net.i2p.util.SystemVersion;
 
 /**
  * Format a date in local time zone
@@ -17,7 +16,7 @@ public abstract class FormatDate
     static {
 	DateFormat fmt = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
 	// the router sets the JVM time zone to UTC but saves the original here so we can get it
-        fmt.setTimeZone(DataHelper.getSystemTimeZone(I2PAppContext.getGlobalContext()));
+        fmt.setTimeZone(SystemVersion.getSystemTimeZone());
 	_dateFormat = fmt;
     }
 
diff --git a/apps/susimail/src/src/i2p/susi/webmail/Mail.java b/apps/susimail/src/src/i2p/susi/webmail/Mail.java
index c184831c3419b74d3b8616b581cb20c977ee96a8..ed5c3aa145722149882b6f88ddd9b86f2b098b47 100644
--- a/apps/susimail/src/src/i2p/susi/webmail/Mail.java
+++ b/apps/susimail/src/src/i2p/susi/webmail/Mail.java
@@ -41,8 +41,8 @@ import java.util.Date;
 import java.util.Locale;
 import java.util.TimeZone;
 
-import net.i2p.I2PAppContext;
 import net.i2p.data.DataHelper;
+import net.i2p.util.SystemVersion;
 
 /**
  * data structure to hold a single message, mostly used with folder view and sorting
@@ -276,7 +276,7 @@ class Mail {
 		DateFormat localDateFormatter = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
 		DateFormat longLocalDateFormatter = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
 		// the router sets the JVM time zone to UTC but saves the original here so we can get it
-		TimeZone tz = DataHelper.getSystemTimeZone(I2PAppContext.getGlobalContext());
+		TimeZone tz = SystemVersion.getSystemTimeZone();
 		localDateFormatter.setTimeZone(tz);
 		longLocalDateFormatter.setTimeZone(tz);
 		DateFormat mailDateFormatter = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH );
diff --git a/core/java/src/net/i2p/data/DataHelper.java b/core/java/src/net/i2p/data/DataHelper.java
index ee78a95c645498696ff7109e0ba1e5a2c8e92dae..f2c83a48e403557699852153f4564eb92bf4b096 100644
--- a/core/java/src/net/i2p/data/DataHelper.java
+++ b/core/java/src/net/i2p/data/DataHelper.java
@@ -37,7 +37,6 @@ import java.util.Iterator;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Properties;
-import java.util.TimeZone;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Pattern;
 import java.util.zip.Deflater;
@@ -1925,20 +1924,4 @@ public class DataHelper {
         }
         return p.split(s, limit);
     }
-
-    /**
-     *  The system's time zone, which is probably different from the
-     *  JVM time zone, because Router changes the JVM default to GMT.
-     *  It saves the old default in the context properties where we can get it.
-     *  Use this to format a time in local time zone with DateFormat.setTimeZone().
-     *
-     *  @return non-null
-     *  @since 0.9.24
-     */
-    public static TimeZone getSystemTimeZone(I2PAppContext ctx) {
-        String systemTimeZone = ctx.getProperty("i2p.systemTimeZone");
-        if (systemTimeZone != null)
-            return TimeZone.getTimeZone(systemTimeZone);
-        return TimeZone.getDefault();
-    }
 }
diff --git a/core/java/src/net/i2p/util/LogManager.java b/core/java/src/net/i2p/util/LogManager.java
index 94a39cf0ce34715dd6d8cd74a22f92133ed23226..a88fc1df9724032bc28283d1f8ab00c4863a944d 100644
--- a/core/java/src/net/i2p/util/LogManager.java
+++ b/core/java/src/net/i2p/util/LogManager.java
@@ -478,7 +478,7 @@ public class LogManager implements Flushable {
             if (!format.equals(""))
                 fmt.applyPattern(format);
             // the router sets the JVM time zone to UTC but saves the original here so we can get it
-            fmt.setTimeZone(DataHelper.getSystemTimeZone(_context));
+            fmt.setTimeZone(SystemVersion.getSystemTimeZone(_context));
             _dateFormatPattern = format;
             _dateFormat = fmt;
             return true;
diff --git a/core/java/src/net/i2p/util/SystemVersion.java b/core/java/src/net/i2p/util/SystemVersion.java
index 3e5e56e7c30acd07ca70d0e0811e5fb572b29564..47644f427806cf7701487a0ce93e748e41a178b9 100644
--- a/core/java/src/net/i2p/util/SystemVersion.java
+++ b/core/java/src/net/i2p/util/SystemVersion.java
@@ -5,6 +5,9 @@ package net.i2p.util;
  */
 
 import java.lang.reflect.Field;
+import java.util.TimeZone;
+
+import net.i2p.I2PAppContext;
 
 /**
  * Methods to find out what system we are running on
@@ -202,4 +205,59 @@ public abstract class SystemVersion {
             maxMemory = 96*1024*1024l;
         return maxMemory;
     }
+
+    /**
+     *  The system's time zone, which is probably different from the
+     *  JVM time zone, because Router changes the JVM default to GMT.
+     *  It saves the old default in the context properties where we can get it.
+     *  Use this to format a time in local time zone with DateFormat.setTimeZone().
+     *
+     *  @return non-null
+     *  @since 0.9.24
+     */
+    public static TimeZone getSystemTimeZone() {
+        return getSystemTimeZone(I2PAppContext.getGlobalContext());
+    }
+
+    /**
+     *  The system's time zone, which is probably different from the
+     *  JVM time zone, because Router changes the JVM default to GMT.
+     *  It saves the old default in the context properties where we can get it.
+     *  Use this to format a time in local time zone with DateFormat.setTimeZone().
+     *
+     *  @return non-null
+     *  @since 0.9.24
+     */
+    public static TimeZone getSystemTimeZone(I2PAppContext ctx) {
+        String systemTimeZone = ctx.getProperty("i2p.systemTimeZone");
+        if (systemTimeZone != null)
+            return TimeZone.getTimeZone(systemTimeZone);
+        return TimeZone.getDefault();
+    }
+
+    /**
+     *  @since 0.9.24
+     */
+/****
+    public static void main(String[] args) {
+        System.out.println("64 bit   : " + is64Bit());
+        System.out.println("Java 6   : " + isJava6());
+        System.out.println("Java 7   : " + isJava7());
+        System.out.println("Java 8   : " + isJava8());
+        System.out.println("Java 9   : " + isJava9());
+        System.out.println("Android  : " + isAndroid());
+        if (isAndroid())
+            System.out.println("  Version: " + getAndroidVersion());
+        System.out.println("Apache   : " + isApache());
+        System.out.println("ARM      : " + isARM());
+        System.out.println("Mac      : " + isMac());
+        System.out.println("Gentoo   : " + isGentoo());
+        System.out.println("GNU      : " + isGNU());
+        System.out.println("Windows  : " + isWindows());
+        System.out.println("Wrapper  : " + hasWrapper());
+        System.out.println("x86      : " + isX86());
+        System.out.println("Max mem  : " + getMaxMemory());
+
+    }
+****/
 }