[
https://issues.apache.org/jira/browse/NET-710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844377#comment-17844377
]
Jacob Vandborg commented on NET-710:
------------------------------------
I've tested a bit more and now see where I've made a mistake. While setting up
the FTP client I'm not specifically setting the TZ of the server I'm connecting
to. Because of this the LIST entries are parsed using the TZ of the machine
running the FTP client and currently my machine is setup with TZ CET.
The following code will result in ParseException
{code:java}
public static void main(String[] args) throws ParseException {
FTPClientConfig ftpClientConfig = new FTPClientConfig();
ftpClientConfig.setServerTimeZoneId("CET"); // Wrong TZ for server just to
demonstrate my mistake
ftpClientConfig.setDefaultDateFormatStr("MMM d yyyy");
ftpClientConfig.setRecentDateFormatStr("MMM d HH:mm");
FTPTimestampParserImpl ftpTimestampParser = new FTPTimestampParserImpl();
ftpTimestampParser.configure(ftpClientConfig);
Calendar c = ftpTimestampParser.parseTimestamp("Mar 31 02:37",
Calendar.getInstance());
}
{code}
The following code works and does not throw ParseException
{code:java}
public static void main(String[] args) throws ParseException {
FTPClientConfig ftpClientConfig = new FTPClientConfig();
ftpClientConfig.setServerTimeZoneId("UTC"); // Correct TZ for server
ftpClientConfig.setDefaultDateFormatStr("MMM d yyyy");
ftpClientConfig.setRecentDateFormatStr("MMM d HH:mm");
FTPTimestampParserImpl ftpTimestampParser = new FTPTimestampParserImpl();
ftpTimestampParser.configure(ftpClientConfig);
Calendar c = ftpTimestampParser.parseTimestamp("Mar 31 02:37",
Calendar.getInstance());
}
{code}
Thank you for your support Sebb and sorry for wasting your time.
Best regards,
Jacob
> Timestamp parsing fails around the change to daylight savings
> -------------------------------------------------------------
>
> Key: NET-710
> URL: https://issues.apache.org/jira/browse/NET-710
> Project: Commons Net
> Issue Type: Bug
> Components: FTP
> Affects Versions: 3.3, 3.8.0
> Reporter: Mike Baranczak
> Priority: Major
>
> {{String ts = "Mar 13 02:33";}}
> {{Calendar serverTime = Calendar.getInstance(TimeZone.getTimeZone("EDT"),
> Locale.US);}}
> {{serverTime.set(2022, 2, 16, 14, 0);}}
> {{Calendar c = new FTPTimestampParserImpl().parseTimestamp(ts, serverTime);}}
>
> {{Result:}}
>
> {{java.text.ParseException: Timestamp 'Mar 13 02:33' could not be parsed
> using a server time of Wed Mar 16 10:00:54 EDT 2022}}
> {{ at
> org.apache.commons.net.ftp.parser.FTPTimestampParserImpl.parseTimestamp
> (FTPTimestampParserImpl.java:246)}}
>
> I can't tell what's going on, but this seems to have something to do with the
> transition to Daylight Savings Time, which happened on Sunday, March 13. I
> ran into this bug when trying to get a list of recent files from an FTP
> server. (UnixFTPEntryParser ignores the exception silently, which isn't a
> great idea, either.)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)