[ 
https://issues.apache.org/jira/browse/LANG-1786?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18035944#comment-18035944
 ] 

Gary D. Gregory edited comment on LANG-1786 at 11/6/25 6:14 PM:
----------------------------------------------------------------

Here's another idea for your consideration in TimeZones PR #1492: replace 
TimeZones.getTimeZone(String) with an auto-map feature:
{code:java}
    public static TimeZone getTimeZone(final String id) {
        return AT_LEAST_JAVA_25 && ZoneId.SHORT_IDS.containsKey(id) ? 
TimeZone.getTimeZone(ZoneId.SHORT_IDS.get(id)) : TimeZone.getTimeZone(id);
    }
{code}
or just:
{code:java}
    public static TimeZone getTimeZone(final String id) {
        final String mapped = ZoneId.SHORT_IDS.get(id);
        return TimeZone.getTimeZone(mapped != null ? mapped : id);
    }
{code}


was (Author: garydgregory):
Here's another idea for your consideration in TimeZones PR #1492: replace 
TimeZones.getTimeZone(String) with an auto-map feature:
{code:java}
    public static TimeZone getTimeZone(final String id) {
        return AT_LEAST_JAVA_25 && ZoneId.SHORT_IDS.containsKey(id) ? 
TimeZone.getTimeZone(ZoneId.SHORT_IDS.get(id)) : TimeZone.getTimeZone(id);
    }
{code}
or just:
{code:java}
    public static TimeZone getTimeZone(final String id) {
        final String mapped = ZoneId.SHORT_IDS.get(id);
        return mapped != null ? TimeZone.getTimeZone(mapped) : 
TimeZone.getTimeZone(id);
    }
{code}


> FastDateFormat logs warnings on the console using FastDateFormat on Java 25
> ---------------------------------------------------------------------------
>
>                 Key: LANG-1786
>                 URL: https://issues.apache.org/jira/browse/LANG-1786
>             Project: Commons Lang
>          Issue Type: Improvement
>          Components: lang.time.*
>    Affects Versions: 3.19.0
>            Reporter: Daniel Migowski
>            Priority: Major
>             Fix For: Patch Needed
>
>
> When using an instance of FastDateFormat with e.g.
> {code:java}
> FastDateFormat.getInstance( "yyyy-MM-dd'T'HH:mm:ssZ" );{code}
> the timezone database of the commons.lang package iterates throught all 
> timezones and adds them to the local database. This sadly calls
> {code:java}
> java.util.TimeZone.getTimeZone(String){code}
> with a bunch of timezone strings that are considered deprecated with the new 
> JDK25 (or something between 18 and 25, didn't check that), and each of these 
> timezone strings leads to a message like
> {noformat}
> WARNING: Use of the three-letter time zone ID "ACT" is deprecated and it will 
> be removed in a future release{noformat}
> printed directly from the getTimeZone function to system.err!
> This is actually really annoying. The timezone strings which are deprecated 
> can be found in 
> {code:java}
> java.time.ZoneId.SHORT_IDS.{code}
> My suggestion is to check in 
> {code:java}
> org.apache.commons.lang3.time.FastDateParser.TimeZoneStrategy.TimeZoneStrategy{code}
> if the JDK version 25 is running and then to filter the values from SHORT_IDS 
> to be recognized. SHORT_IDS should be copied into commons.lang to make this 
> still work with older JDKs.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to