$ZHorolog

$ZH[OROLOG]はカンマで区切られた4つの部分を返します(たとえば、 "63638,39194,258602,14400")。最初の2つの部分は $HOROLOG の2つの部分と同じです。$ZHOROLOG は、$PIECE($HOROLOG, ",",...) の形式のすべてのアプリケーションコードで、$HOROLOGの完全互換です。たとえば、$ZDATE() の最初の引数として$ZHOROLOGを使用できます。3番目の部分数字は、現在の秒単位のマイクロ秒数です。3番目の部分数字の精度は、システムクロックの精度に左右されます。4番目の部分文字は、UTCまでの秒単位のオフセットです。有効なUTC時間オフセットの場合、4番目の部分値は -43200(UTC-12:00) と +50400(UTC+14:00)の間の数値です。4番目の部分値の値は、夏時間を守っているそれらの場所で期待される年を通して変わりません。UTCの$HOROLOG表現を取得するには、4番目の部分を$ZHOROLOGの2番目の部分に追加し、次のように実行します:

例:

GTM>zprint ^zhoro
zhoro(zone)
 set:'$data(zone) zone="Europe/London"
 new zutzh
 set zutzh=$$getzutzh(zone)
 do displaytzdetails(zutzh,zone)
 quit
getzutzh(zone)
  set shcommand="TZ="_zone_" $gtm_dist/mumps -run %XCMD 'write $zut,"" "",$zhorolog,"" "",$zdate($horolog,""MON DD,YYYY 12:60:SS AM""),!'"
  set descname="tzpipe"
  open descname:(shell="/bin/sh":command=shcommand:readonly)::"pipe"
  use descname read dateline use $principal close descname
  quit dateline
displaytzdetails(zutzh,zone)
 set zut=$piece(zutzh," ",1)   ; $ZUT
 set zh=$piece(zutzh," ",2)    ; $ZHOROLOG
 set zhfp=$piece(zh,",",1)     ; first piece of $ZH of zone
 set zhsp=$piece(zh,",",2)
 set zhtp=$piece(zh,",",3)
 set zhfop=$piece(zh,",",4)
 set tz=zhfop/3600,hours=$select(tz*tz=1:" Hour ",1:" Hours ")
 write "Time in ",zone," ",$piece(zutzh," ",3,6)," $ZUT=",zut,!,$select(tz<0:-tz_hours_"Ahead of",1:tz_hours_"Behind")," UTC",!
 set zhsp=zhsp+zhfop
 if zhsp>86400 set zhfp=zhfp+1,zhsp=zhsp-86400     ; 86400 seconds in a day
 else  if zhsp<1 set zhfp=zhfp-1,zhsp=zhsp+86400
 write "Time in UTC ",$zdate(zhfp_","_zhsp,"MON DD,YYYY 12:60:SS AM")
 quit
GTM>do ^zhoro
Time in Europe/London APR 10,2015 05:20:29 PM $ZUT=1428682829213711
1 Hour Ahead of UTC
Time in UTC APR 10,2015 04:20:29 PM
GTM>
inserted by FC2 system