Question
· Dec 5, 2017

Getting Current Day in Cache

Hi Everyone,

I want to get current day name in cache. Does anyone know how to do that?

Discussion (6)1
Log in or sign up to continue

Just 2c to add. If a "national" locale is effective, e.g.

%SYS>zw ^%SYS("LOCALE","CURRENT")
^%SYS("LOCALE","CURRENT")="yruw"

and the setting was done before Caché restart:

%SYS>set ^SYS("NLS","Config","LocaleFormat")=1

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),!
0 Среда
1 Wednesday

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
          Wed  Wednesday

Or for all new processes, without restart

%SYS>write $zd($h,12)
Wednesday
%SYS>Set ^SYS("NLS","Config","LocaleFormat")=1
 
%SYS>write $zd($h,12)
Wednesday
%SYS>Do Locale^NLSLOAD("rusw")
 
%SYS>write $zd($h,12)
Среда