[ 
http://issues.apache.org/jira/browse/TOMAHAWK-787?page=comments#action_12450579 
] 
            
Richard J. Barbalace commented on TOMAHAWK-787:
-----------------------------------------------

I think the following changes may resolve the bug, which appears to work in my 
copy of date.js, but someone more familiar with the component than myself 
should create a patch and verify this.

At line 344:
        else if(patternSub.charAt(0)=='H' ||
                patternSub.charAt(0)=='h')
        {
            if(parse)
            {
                this._parseNum(context, dateStr,2,dateIndex);
                context.hour = context.retValue;
            }
            else
            {
                if (patternSub.charAt(0)=='h' && context.hour >= 12) {
                    context.ampm = 1;    // Set PM
                }
                if (patternSub.charAt(0)=='h' && context.hour == 0) {
                    context.hour = 12;   // Adjust midnight hour
                }
                if (patternSub.charAt(0)=='h' && context.hour > 12) {
                    context.hour -= 12;  // Adjust afternoon hours
                }
                this._formatNum(context,context.hour,patternSub.length);
            }
        }

Then at line 381:
        else if(patternSub.charAt(0)=='a')
        {
            if(parse)
            {
                this._parseString(context, 
dateStr,dateIndex,this.dateFormatSymbols.ampms);
                context.ampm = context.retValue;
                if (context.ampm == 0 && context.hour == 12) {
                    context.hour = 0;   // Adjust midnight hour
                } else if (context.ampm == 1 && context.hour < 12) {
                    context.hour += 12; // Adjust afternoon hours
                }
            }
            else
            {
                context.dateStr += this.dateFormatSymbols.ampms[context.ampm];
            }
        }


> Incorrect display of 12-hour time in t:inputCalendar
> ----------------------------------------------------
>
>                 Key: TOMAHAWK-787
>                 URL: http://issues.apache.org/jira/browse/TOMAHAWK-787
>             Project: MyFaces Tomahawk
>          Issue Type: Bug
>          Components: Calendar
>    Affects Versions: 1.1.4-SNAPSHOT, 1.1.5-SNAPSHOT
>            Reporter: Richard J. Barbalace
>
> If the date format attribute specifies 12-hour time, as in:
>     popupDateFormat="d MMM yyyy hh:mm:ss a"
> rather than 24-hour time, as in:
>     popupDateFormat="d MMM yyyy HH:mm:ss"
> then the display from the calendar still reports 24-hour time, yielding 
> something like this:
>     Today is 16 Nov 2006 16:23:04 AM
> That of course should read as:
>     Today is 16 Nov 2006 04:23:04 PM
> I suspect the bug involves the code beginning around line 344 of
>      
> core/src/main/resources/org/apache/myfaces/custom/calendar/resource/date.js
> which reads:
>         else if(patternSub.charAt(0)=='H' ||
>                 patternSub.charAt(0)=='h')
> There should probably be separate cases for 'H' and 'h', for which the latter 
> would subtract 12 from the context.hour, but I am not familiar enough with 
> this code to be sure.  There might also be an issue with the AM/PM setting 
> further down the file around line 381.
> There are, in case anyone wonders why the time should be set from a calendar 
> control, valid reasons for doing this, such as in my application where it is 
> desired to be able to correct the date on an incorrectly entered timestamp 
> from some other source.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to