Hello
I am testing the new-ish 'DT' conversion code in UV 11.3.5 (on RHEL8) and am having no success getting it to do what seems like simple conversions.
I put together the following test code to give it a go:
--
* Testing the new DT conversion code
sys.VAL = system(99)now.VAL = now()local.VAL = datetimel()utc.VAL = datetimez()
crt "NLS status : ":oconv(system(100),"S;'On';'Off'")crt "system(99) : ":sys.VALcrt "now() : ":now.VALcrt "local : ":local.VALcrt "utc : ":utc.VAL
lst.TESTS = ''lst.TESTS<-1> = "O": @VM: sys.VAL: @VM: "DT"lst.TESTS<-1> = "O": @VM: sys.VAL: @VM: "dt"lst.TESTS<-1> = "O": @VM: now.VAL: @VM: "DT"lst.TESTS<-1> = "O": @VM: now.VAL: @VM: "dt"lst.TESTS<-1> = "I": @VM: local.VAL: @VM: "DT"lst.TESTS<-1> = "I": @VM: local.VAL: @VM: "dt"lst.TESTS<-1> = "I": @VM: utc.VAL: @VM: "DTIS"lst.TESTS<-1> = "I": @VM: utc.VAL: @VM: "dtis"lst.TESTS<-1> = "I": @VM: local.VAL: @VM: "DT"lst.TESTS<-1> = "I": @VM: local.VAL: @VM: "dt"lst.TESTS<-1> = "I": @VM: utc.VAL: @VM: "DTIS"lst.TESTS<-1> = "I": @VM: utc.VAL: @VM: "dtis"
qty.TESTS = dcount(lst.TESTS,@AM)
$OPTIONS DEFAULTcrtcrt "Testing under DEFAULT mode (IDEAL UniVerse)"
for test.NUM = 1 to qty.TESTS this.TEST = lst.TESTS<test.NUM> crt test.NUM "4R":" ": call TEST_CONV( this.TEST<1,1>, this.TEST<1,2>, this.TEST<1,3>)next test.NUM
$OPTIONS PICKcrtcrt "Testing under PICK mode (Generic PICK)"
for test.NUM = 1 to qty.TESTS this.TEST = lst.TESTS<test.NUM> crt test.NUM "4R":" ": call TEST_CONV( this.TEST<1,1>, this.TEST<1,2>, this.TEST<1,3>)next test.NUM
$OPTIONS INFORMATIONcrtcrt "Testing under INFORMATION mode (Prime INFORMATION)"
for test.NUM = 1 to qty.TESTS this.TEST = lst.TESTS<test.NUM> crt test.NUM "4R":" ": call TEST_CONV( this.TEST<1,1>, this.TEST<1,2>, this.TEST<1,3>)next test.NUM
status.DESCS = convert(";",@am,"Conversion Successful;Value not convertable by conversion code;Invalid conversion code;Successful conversion of possible invalid date")qty = dcount(status.DESCS,@AM)crtcrt "Code Description"for num.DESC = 1 to qty crt (num.DESC-1) "3R": " ":status.DESCS<num.DESC>next num.DESCcrt
end
* Local subroutinesub TEST_CONV( direction, in.VAL, in.CODE)
* reset the STATUS() value before we startassign 0 to status()
if upcase(direction[1,1]) = "O" then crt "OCONV(\\":in.VAL:"\\,\\":in.CODE:"\\) = ": crt squote( oconv( in.VAL, in.CODE) ):end else crt "ICONV(\\":in.VAL:"\\,\\":in.CODE:"\\) = ": crt squote( iconv( in.VAL, in.CODE) ):end
stat.CODE = status()crt " status()=":stat.CODE
return
--
Running this gives me no successful conversions
--
>TEST.DT.CONVNLS status : Onsystem(99) : 1757645301now() : 1757645301609local : 2025-09-12 12:48:21.609845utc : 2025-09-12 02:48:21.609848
Testing under DEFAULT mode (IDEAL UniVerse) 1 OCONV(\\1757645301\\,\\DT\\) = '' status()=2 2 OCONV(\\1757645301\\,\\dt\\) = '20t05t4237' status()=0 3 OCONV(\\1757645301609\\,\\DT\\) = '' status()=2 4 OCONV(\\1757645301609\\,\\dt\\) = '13t10t9943' status()=0 5 ICONV(\\2025-09-12 12:48:21.609845\\,\\DT\\) = '' status()=2 6 ICONV(\\2025-09-12 12:48:21.609845\\,\\dt\\) = '' status()=1 7 ICONV(\\2025-09-12 02:48:21.609848\\,\\DTIS\\) = '' status()=2 8 ICONV(\\2025-09-12 02:48:21.609848\\,\\dtis\\) = '' status()=2 9 ICONV(\\2025-09-12 12:48:21.609845\\,\\DT\\) = '' status()=2 10 ICONV(\\2025-09-12 12:48:21.609845\\,\\dt\\) = '' status()=1 11 ICONV(\\2025-09-12 02:48:21.609848\\,\\DTIS\\) = '' status()=2 12 ICONV(\\2025-09-12 02:48:21.609848\\,\\dtis\\) = '' status()=2
Testing under PICK mode (Generic PICK) 1 OCONV(\\1757645301\\,\\DT\\) = '' status()=2 2 OCONV(\\1757645301\\,\\dt\\) = '20t05t4237' status()=0 3 OCONV(\\1757645301609\\,\\DT\\) = '' status()=2 4 OCONV(\\1757645301609\\,\\dt\\) = '13t10t9943' status()=0 5 ICONV(\\2025-09-12 12:48:21.609845\\,\\DT\\) = '' status()=2 6 ICONV(\\2025-09-12 12:48:21.609845\\,\\dt\\) = '' status()=1 7 ICONV(\\2025-09-12 02:48:21.609848\\,\\DTIS\\) = '' status()=2 8 ICONV(\\2025-09-12 02:48:21.609848\\,\\dtis\\) = '' status()=2 9 ICONV(\\2025-09-12 12:48:21.609845\\,\\DT\\) = '' status()=2 10 ICONV(\\2025-09-12 12:48:21.609845\\,\\dt\\) = '' status()=1 11 ICONV(\\2025-09-12 02:48:21.609848\\,\\DTIS\\) = '' status()=2 12 ICONV(\\2025-09-12 02:48:21.609848\\,\\dtis\\) = '' status()=2
Testing under INFORMATION mode (Prime INFORMATION) 1 OCONV(\\1757645301\\,\\DT\\) = '' status()=2 2 OCONV(\\1757645301\\,\\dt\\) = '20t05t4237' status()=0 3 OCONV(\\1757645301609\\,\\DT\\) = '' status()=2 4 OCONV(\\1757645301609\\,\\dt\\) = '13t10t9943' status()=0 5 ICONV(\\2025-09-12 12:48:21.609845\\,\\DT\\) = '' status()=2 6 ICONV(\\2025-09-12 12:48:21.609845\\,\\dt\\) = '' status()=1 7 ICONV(\\2025-09-12 02:48:21.609848\\,\\DTIS\\) = '' status()=2 8 ICONV(\\2025-09-12 02:48:21.609848\\,\\dtis\\) = '' status()=2 9 ICONV(\\2025-09-12 12:48:21.609845\\,\\DT\\) = '' status()=2 10 ICONV(\\2025-09-12 12:48:21.609845\\,\\dt\\) = '' status()=1 11 ICONV(\\2025-09-12 02:48:21.609848\\,\\DTIS\\) = '' status()=2 12 ICONV(\\2025-09-12 02:48:21.609848\\,\\dtis\\) = '' status()=2
Code Description 0 Conversion Successful 1 Value not convertable by conversion code 2 Invalid conversion code 3 Successful conversion of possible invalid date
>
--
Has anyone been able to successfully use the 'DT' conversion code?
If so, what results do you get from the above test program?
------------------------------
Gregor Scott
Software Architect
Pentana Solutions Pty Ltd
Mount Waverley VIC AU
------------------------------