Hi,

        I got a problem with i18n. I want to use a french localized
GregorianCalendar but when i execute my JSP, the GregorianCalendar is not
French Localized. I use jakarta-tomcat 3.2 with Sun JDK 1.3; On the other
hand, when i execute the same code in a java application (with sun JVM 1.3),
the result is exactly wath i expect. What am i missing in jakarta
configuration?

Here are the source code and the result of my JSP and the java app

testCalendar.jsp:
*****************************

<%@page session="true" import="java.text.*, java.util.*"%>
<html>
<head>
</head>
<BODY TEXT="000000" BGCOLOR="EBF2F1" LINK="501123" ALINK="501123"
VLINK="501123">
<%
        Vector days = new Vector();
        Vector weeks = new Vector();
        java.text.SimpleDateFormat sdf = new SimpleDateFormat("EEEE",
Locale.FRANCE);
        java.text.SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy",
Locale.FRANCE);
        GregorianCalendar myCalendar = new GregorianCalendar(Locale.FRANCE);
        myCalendar.setTime(sdf2.parse("05/01/2001"));
        myCalendar.set(myCalendar.DAY_OF_WEEK,
myCalendar.getFirstDayOfWeek());
        for (int i = 0; i < 4; i++) {
                weeks.addElement(new
Integer(myCalendar.get(myCalendar.WEEK_OF_YEAR)));
                for (int j = 0; j < 7; j++) {
                        days.addElement(myCalendar.getTime());
                        myCalendar.setTime(new
Date(myCalendar.getTime().getTime() + (1000*60*60*24)));
                }
        }
%>
<table>
        <tr>
                <td></td>
                <%
                for (int j = 0; j < 7; j++) {
                %>
                <td>
                        <%=sdf.format((Date) days.elementAt(j))%>
                </td>
                <%}%>
        </tr>
        <%for (int i = 0; i < 4; i++) {%>
        <tr>
                <td>
                        <%=weeks.elementAt(i)%>
                </td>
                <%for (int j = 0; j < 7; j++) {%>
                <td>
                        <%=sdf2.format((Date) days.elementAt(7 * i + j))%>
                </td>
                <%}%>
        </tr>
        <%}%>
</table>
</body>
</html>

the result is :
        Sunday  Monday  Tuesday Wednesday       Thursday        Friday
Saturday 
1       31/12/2000      01/01/2001      02/01/2001      03/01/2001
04/01/2001      05/01/2001      06/01/2001 
2       07/01/2001      08/01/2001      09/01/2001      10/01/2001
11/01/2001      12/01/2001      13/01/2001 
3       14/01/2001      15/01/2001      16/01/2001      17/01/2001
18/01/2001      19/01/2001      20/01/2001 
4       21/01/2001      22/01/2001      23/01/2001      24/01/2001
25/01/2001      26/01/2001      27/01/2001 

testCalendar.java
*****************************
import java.text.*;
import java.util.*;

public class TestCalendar {
        public static void main(java.lang.String[] args) {
                Vector days = new Vector();
                Vector weeks = new Vector();
                SimpleDateFormat sdf = new SimpleDateFormat("EEEE",
Locale.FRANCE);
                SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy",
Locale.FRANCE);
                GregorianCalendar myCalendar = new
GregorianCalendar(Locale.FRANCE);
                myCalendar.setTime(sdf2.parse("05/01/2001"));
                myCalendar.set(myCalendar.DAY_OF_WEEK,
myCalendar.getFirstDayOfWeek());
                for (int i = 0; i < 4; i++) {
                        weeks.addElement(new
Integer(myCalendar.get(myCalendar.WEEK_OF_YEAR)));
                        for (int j = 0; j < 7; j++) {
                                days.addElement(myCalendar.getTime());
                                myCalendar.setTime(new
Date(myCalendar.getTime().getTime() + (1000*60*60*24)));
                        }
                }
                System.out.print("\t");
                for (int j = 0; j < 7; j++) {
                        System.out.print(sdf.format((Date)
days.elementAt(j)) + "\t");
                }
                System.out.println();
                for (int i = 0; i < 4; i++) {
                        System.out.print(weeks.elementAt(i) + "\t");
                        for (int j = 0; j < 7; j++) {
                                System.out.print(sdf2.format((Date)
days.elementAt(7 * i + j)) + "\t");
                        }
                        System.out.println();
                }
        }
}

and the result is :

        lundi           mardi           mercredi        jeudi
vendredi        samedi  dimanche        
1       01/01/2001      02/01/2001      03/01/2001      04/01/2001
05/01/2001      06/01/2001      07/01/2001      
2       08/01/2001      09/01/2001      10/01/2001      11/01/2001
12/01/2001      13/01/2001      14/01/2001      
3       15/01/2001      16/01/2001      17/01/2001      18/01/2001
19/01/2001      20/01/2001      21/01/2001      
4       22/01/2001      23/01/2001      24/01/2001      25/01/2001
26/01/2001      27/01/2001      28/01/2001      

--
Raphaël LEMAITRE 
mailto:[EMAIL PROTECTED] 
e-deal 
86-88 rue du Vieux Pont, 92000 Nanterre 
http://www.e-deal.com + 33.1.41.37.91.00 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to