*/\r
public static final Charset CHARSET_1252 = Charset.forName("CP1252");\r
\r
- private static final ThreadLocal<TimeZone> userTimeZone = new ThreadLocal<TimeZone>() {\r
- @Override\r
- @SuppressForbidden("implementation around default locales in POI")\r
- protected TimeZone initialValue() {\r
- return TimeZone.getDefault();\r
- }\r
- };\r
-\r
- private static final ThreadLocal<Locale> userLocale = new ThreadLocal<Locale>() {\r
- @Override\r
- @SuppressForbidden("implementation around default locales in POI")\r
- protected Locale initialValue() {\r
- return Locale.getDefault();\r
- }\r
- };\r
+ private static final ThreadLocal<TimeZone> userTimeZone = new ThreadLocal<TimeZone>();\r
+ private static final ThreadLocal<Locale> userLocale = new ThreadLocal<Locale>();\r
\r
/**\r
* As time zone information is not stored in any format, it can be\r
}\r
\r
/**\r
- * @return the time zone which is used for date calculations, defaults to UTC\r
- */\r
+ * @return the time zone which is used for date calculations. If not set, returns {@link TimeZone#getDefault()}.\r
+ */
+ @SuppressForbidden("implementation around default locales in POI")\r
public static TimeZone getUserTimeZone() {\r
- return userTimeZone.get();\r
+ TimeZone timeZone = userTimeZone.get();
+ return (timeZone != null) ? timeZone : TimeZone.getDefault();\r
}\r
- \r
+
+ /**
+ * Clear the thread-local user time zone.
+ */ \r
public static void resetUserTimeZone() {\r
userTimeZone.remove();\r
}\r
userLocale.set(locale);\r
}\r
\r
- public static void resetUserLocale() {\r
- userLocale.remove();\r
- }\r
-\r
/**\r
- * @return the default user locale, defaults to {@link Locale#ROOT}\r
- */\r
+ * @return the default user locale. If not set, returns {@link Locale#getDefault()}.\r
+ */
+ @SuppressForbidden("implementation around default locales in POI")\r
public static Locale getUserLocale() {\r
- return userLocale.get();\r
+ Locale locale = userLocale.get();
+ return (locale != null) ? locale : Locale.getDefault();\r
+ }
+
+ public static void resetUserLocale() {\r
+ userLocale.remove();\r
}\r
\r
/**\r