日期/时间变量的特殊处理
 
 
 

CDATE 和 DATE 系统变量提供对当前日期和时间的访问。TDCREATE、TDINDWG、TDUPDATE 和 TDUSRTIMER 系统变量(以及 $TDCREATE、$TDUCREATE、$TDUPDATE 和 $TDUUPDATE DXF 标题变量)提供对与当前图形关联的时间和日期的访问。返回的值为实数,具有特定的意义,如下所述。

DATE 是以实数形式的公历日期和小数天的形式表示的当前日期和时间。

<公历日期>。<小数天>

例如,对于格林尼治标准时间 1999 年 12 月 31 日晚上 9:58:35,DATE 变量为

2451544.91568287

读取变量时,从计算机时钟上提取日期和时间。时间表示为小数天,将 DATE 返回的时间相减可以计算出时差。要从 DATE 返回的值中提取自午夜起的秒数,请使用 AutoLISP 表达式

(setq s (getvar "DATE"))
(setq seconds (* 86400.0 (- s (fix s))))

注意,如果将系统时钟设置为 UTC/Zulu(格林尼治标准时间),DATE 将只返回实际的公历日期。系统变量 TDCREATE 和 TDUPDATE 与 DATE 格式相同,但这两个变量的值分别表示当前图形的创建时间和最后更新的时间。

TDINDWG 和 TDUSRTIMER(以及 $TDINDWG 和 $TDUSRTIMER DXF 标题变量)使用与 DATE 相似的格式,但它们的值表示消耗的时间,即

<天数>.<小数天>

CDATE 是以日历和时钟格式表示的当前日期和时间。该值作为实数以下列格式返回:

YYYYMMDD.HHMMSShsec

其中

YYYY = 年

MM = 月 (01-12)

DD = 日 (01-31)

HH = 小时 (00-23)

MM = 分钟 (00-59)

SS = 秒 (00-59)

hsec = 百分之一秒 (00-99)

例如,如果当前日期是 2005 年 12 月 31 日晚上 9:58:35.75,CDATE 将返回值:

20051231.21583575

请注意,可以将之前和之后的 CDATE 值进行比较,但它们之间的差值没有意义。