[fpc-devel] TimeReFormat in FormatDateTime

petr.kristan at epos.cz petr.kristan at epos.cz
Tue Apr 8 17:39:25 CEST 2008


On Tue, Apr 08, 2008 at 05:23:04PM +0200, Michael Van Canneyt wrote:
> 
> 
> On Tue, 8 Apr 2008, petr.kristan at epos.cz wrote:
> 
> > On Tue, Apr 08, 2008 at 04:32:30PM +0200, Michael Van Canneyt wrote:
> > > 
> > > 
> > > On Tue, 8 Apr 2008, petr.kristan at epos.cz wrote:
> > > 
> > > > I do no know exact reason use TimeReFormat (replacing 'm'->'n' in time
> > > > formating). But we cannot use this, because this breaks 'am/pm' and 'ampm' formating request.
> > > > And we get 'Illegal character in format string'.
> > > > 
> > > > Here is little patch, which disables this behaviour.
> > > 
> > > It should not be disabled, but fixed properly. 
> > > This code is there for a reason:
> > > 
> > > Normal time formatting is hh:nn (n = minutes). But Delphi explicitly
> > > allows also hh:mm for time, even though mm is the placeholder for month.
> > But this feature works without TimeReFormat hack. Here is piece of code
> > from dati.inc:
> 
> > 
> >  'M': begin
> >        if lastformattoken='H' then
> >          begin
> >            if Count = 1 then
> >              StoreInt(Minute, 0)
> >            else
> >              StoreInt(Minute, 2);
> > 
> >          end
> >        else
> >          begin
> >            case Count of
> >               1: StoreInt(Month, 0);
> >               2: StoreInt(Month, 2);
> >               3: StoreString(ShortMonthNames[Month]);
> >               4: StoreString(LongMonthNames[Month]);
> >            end;
> >          end;
> >     end;
> > 
> > Next TimeReFormat cannot work correctly, because FormatString is case
> > insensitive and comparison "If Result[i]='m'" leaves this out of account.
> 
> Did you test it ? If you can confirm that hh:mm:ss works correctly, then
> I'll apply the patch.
Sure, I tested it. hh:mm:ss and hh:nn:ss works identically.
But isn't cleaner solution remove TimeReFormat completly?
I can redone the patch.

Petr

-- 
Ing. Petr Kristan
.
EPOS PRO s.r.o., Bozeny Nemcove 2625, 530 02 Pardubice
tel: +420 466335223    Czech Republic (Eastern Europe) 
fax: +420 466510709



More information about the fpc-devel mailing list