Bug 27201

Summary: <fmt:formatDate problem with daylight savings time
Product: Taglibs Reporter: Riaan Oberholzer <riaanoberholzer>
Component: Standard TaglibAssignee: Tomcat Developers Mailing List <dev>
Severity: normal    
Priority: P3    
Version: 1.0   
Target Milestone: ---   
Hardware: All   
OS: All   

Description Riaan Oberholzer 2004-02-24 21:33:52 UTC
I have an application that runs in The Netherlands, but is operated from 
England. Date/times are thus stored and converted with a dateformatter set 
with the Timezone "Europe/London". It looks fine. Ie, from a JSP with an input 
form, I enter a time as "15:00" (text, UK time) and in the database it 
shows "16:00" (Dutch time, after using dateformatter and timezone) which is 

Reading and displaying it back also works, EXCEPT when I use JSTL and 
<fmt:formatDate timeZone="Europe/London" ... When daylight savings kick in 
(start of April I think), the times are showed 1 our behind when displaying it 
with JSTL. When formatting it manually with my dateformatter, it is correct 
again. Ie, I enter a time as "15:00", it shows in the DB as "16:00", but JSTL 
shows it as "14:00". Formatting 'manually' shows the correct 15:00 time. Is 
this a bug? Or is there something else I need to do to get this right? Thanks
Comment 1 Riaan Oberholzer 2004-02-24 21:35:05 UTC
Btw, I use JSTL 1.0.5, latest version thus.
Comment 2 Pierre Delisle 2004-02-26 00:45:57 UTC

Could you provide us with a simple test case to reproduce the
problem. I got lost somewhere between 14:00, 15:00, and 16:00 :-).
Comment 3 Riaan Oberholzer 2004-02-26 07:36:49 UTC

<fmt:formatDate value="${row.TIME}"
                timeZone="<%= Constants.TIMEZONE %>" 
                pattern="dd-MM-yyyy 'at' HH:mm"/>
does not work
<fmt:formatDate value="${row.TIME}"
                pattern="dd-MM-yyyy 'at' HH:mm"/>
( Constants.TIMEZONE  = "Europe/London")

Someone commented:
> So the java scriplet <%= xxx %> is not allowed?

It depends. If you're on a JSP 2.0 container (JSTL 1.1), then this 
works. It won't on a JSP 1.2 container (JSTL 1.0). 

In JSTL 1.0, you need to use the RT libraries to 
use rtexprvalues. See the spec for details.
Comment 4 Felipe Leme 2004-02-26 17:30:12 UTC

We need a more complete test, like a page that sets the date object using
scriplet code and then display the results using JSTL.

For instance, you said that you enter the time from a JSP page, save it in the
database and then display using JSTL. If you could write a simple version of
this process, like a jsp page that writes to memory (instead of database) and
another that reads the same memory but displaying the wrong data, we could
reproduce it and isolate the bug.


OOPS: nevermind, just now I realized you mark this bug as invalid...