User Answers

There is a few questions to answer first:

- what is the 8-bit language encoding you use (does your 8-bit encoding of the "important" characters differer form the first 256 positions of the UNICODE?)

- are the affected characters used only in the data, or are they also hardcoded within routines/methods/class definitions/...?

- are there $listbuild structures used (if you use persistent classes then the answer is "yes")? 

- is it sure that the $lb structures were not used in subscripts (oh, it is silly idea isn't  it :-)?

If you do not care about fractions of seconds, convert the $H values to count of seconds .. $zdt(datetime,-2) .. and then compare the integers:

set date1 = $zdth("2016-01-02 00:15",3)

set date2 = $zdth("2016-01-02 01:00",3)

zw date1,date2

w $zdt(date1,-2)>$zdt(date2,-2)

 

If you do care about the seconds fractions you can use the follows operator with some of the external formats:

s d1=$zts h .001 s d2=$zts

zw d1,d2
d1="64180,33196.069"
d2="64180,33196.07"

w $zdt(d1,3,1,6)]$zdt(d2,3,1,6)

0

As a consequence of the previous answers it is not allowed to address instance properties using the "dot dot" syntax within a class method. Using the previous example: it is ok to use 

set tCarNumber=..CarNumber 

within the PrintCar() method (providing there is a CarNumber property defined)

but you cannot use it in ClassMethod - as a class method can be called outside of any instance context.