I want to get current day name in cache. Does anyone know how to do that?
Look at the documentation, there are some formats available to use in the $zdate function. Where 11 (abbreviated) and 12(full) looks like what you need.
write $zdate($h, 11)
Write $zdate($h, 12)
Just 2c to add. If a "national" locale is effective, e.g.
and the setting was done before Caché restart:
you will get your national day name if don't forget to set localeopt=0, e.g.
USER>f localeopt=0,1 w localeopt," ",$ZD($h,12,,,,,,,,localeopt),!
It's also possible to achieve the same overriding format defaults for the current process (see $ZDATE description for details). I emphasized the need in Caché restart just because didn't find it in docs.
For current process
USER>f fmt="enuw","rusw","current","" do ##class(%SYS.NLS.Format).%New(fmt) w !,fmt,?10,$zd($h,11),?15,$zd($h,12)
enuw Wed Wednesday
rusw Сре Среда
current St středa
Or for all new processes, without restart
seems to be more safe as switching the default representation for $ZD($h,12) may ruin already existing functionality that is expecting English days' names.
To be honest, I'd prefer application level localization, just because not all possible languages are supported by Caché.
not sure which "day" you want, so try this and you can take your pick of the format you want.
f i=1:1:13 w !,i,"-",$zd($h,i)
To leave a comment or answer to post please log in
Please log in