2017-03-24 3 views
0

Je suis nouveau à Lisp. J'ai besoin d'appeler la fonction datetime. Mais je suis resté à l'heure de la date. En utilisant UTC.AutoLisp - get-universal-time

Le code est

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

L'erreur:

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

Tout le monde peut aider? J'utilise VisualLisp

+1

Avez-vous un manuel Visuallisp? Il devrait énumérer les fonctions disponibles. –

+2

AutoLisp n'a pas de fonctions de manipulation de la date. Jetez un coup d'œil à [DATE (Variable système)] (https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-Core/files/GUID-CBB24068- 1654-4753-BE2E-1D0CE9700411-htm.html) et [Fil: comment obtenir une date dans un format JJ/MM/AA?] (Http://forums.augi.com/showthread.php?43041-Comment obtenir-une-date-dans-un-DD-MM-YY-format). – crashmstr

+1

P.S. il n'y a pas non plus d'horloge système. Vous ne pouvez vraiment pas rechercher des fonctionnalités en dehors de la documentation Autodesk (à partir de schémas ou de bibliothèques Lisp communes). AutoLisp est très dépouillé et concentré sur le travail avec les objets AutoCAD. – crashmstr

Répondre

0

Il existe une variable système appelée "CDATE", qui a une sortie plus claire que la variable système "DATE".

Il obtient la date et l'heure actuelles sur votre ordinateur. Le format de sortie de "CDATE" est "(année à 4 chiffres) (mois à 2 chiffres) (jour à 2 chiffres). (2 chiffres heures) (2 chiffres minutes)", et son format décimal comme ceci 20170609.1410 pour 09.06.2016 13:10

, d'acquérir la date actuelle au format AAAA/MM/JJ votre stratégie sera comme ceci: -

1- obtenir la sortie et le convertir en chaîne

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

2- année d'extrait, mois et jour

(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- construire votre format AAAA/MM/JJ

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

La date actuelle peut être obtenue plus facilement en utilisant '(menucmd" m = $ (edtime, 0, aaaa/mo/jj) ") –