【问题标题】:AutoLisp - get-universal-timeAutoLisp - 获取通用时间
【发布时间】:2017-06-09 19:23:07
【问题描述】:

我是 Lisp 新手。我需要调用 datetime 函数。但我坚持获取日期时间。使用 UTC。

代码是

  (defun C:test ()
  (system-clock nil (get-universal-time))
  )

错误:

Command: TEST
; error: no function definition: GET-UNIVERSAL-TIME

有人可以帮忙吗?我正在使用 VisualLisp

【问题讨论】:

  • 你有 Visuallisp 手册吗?它应该列出可用的功能。
  • AutoLisp 没有日期操作功能。看看DATE (System Variable)Thread: How to get a date in a DD/MM/YY format?
  • P.S.也没有system-clock。您真的无法在 Autodesk 文档之外寻找功能(即来自基于方案或通用 lisp 的库)。 AutoLisp 非常精简,专注于处理 AutoCAD 对象。
  • 感谢@crashmstr 提供参考。它有帮助
  • @crashmstr 所以这意味着我们不能在 autolisp 中使用常见的 lisp 命令是吗?

标签: autolisp


【解决方案1】:

有一个名为“CDATE”的系统变量,它的输出比“DATE”系统变量更清晰。

它获取您计算机中的当前日期和时间。

“CDATE”的输出格式是“(4位年)(2位月)(2位日)。(2位小时)(2位分钟)”,它的十进制格式是这样的20170609.1410 2016/06/09 下午 1:10

因此,要以 YYYY/MM/DD 格式获取当前日期,您的策略将如下所示:-

1-获取输出并将其转换为字符串

    (setq cur_date (rtos (getvar "CDATE")))

2- 提取年月日

    (setq cur_year (substr cur_date 1 4))
    (setq cur_month (substr cur_date 5 2))
    (setq cur_day (substr cur_date 7 2))

3- 构建你的 YYYY/MM/DD 格式

    (setq cur_date (strcat cur_year "/" cur_month "/" cur_day))

【讨论】:

  • 使用(menucmd "m=$(edtime,0,yyyy/mo/dd)")可能更容易获得当前日期
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-10
  • 2011-01-30
  • 2011-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多