将系统日期和时间作为字符串写入 gdx

Write system date and time as string to gdx

我想在执行脚本时将系统日期和时间作为字符串存储到 gdx,最好使用自定义格式。

我尝试了以下方法:

parameter 
    exec_date   execution date
    exec_time   execution time
;

exec_date =  '%system.date1%';
exec_time =  '%system.time%';

但是我在 .lst 文件中收到以下错误消息:

   1  parameter
   2          exec_date       execution date
   3          exec_time       execution time
   4  ;
   5   
   6  exec_date =  'Dec 17, 2020';
****               9,140,409
**** 119  Number (primary) expected
**** 140  Unknown symbol
**** 409  Unrecognizable item - skip to find a new statement
****        looking for a ';' or a key word to get started again
   7  exec_time =  '13:24:05';
****               9,409
**** 119  Number (primary) expected
**** 409  Unrecognizable item - skip to find a new statement
****        looking for a ';' or a key word to get started again

以下代码段给出了相同的错误消息:

variable
    exec_date   execution date
    exec_time   execution time
;

exec_date =  '%system.date1%';
exec_time =  '%system.time%';

最后,以下代码片段运行无误:

$set exec_date = '%system.date1%';
$set exec_time = '%system.time%';

但是 exec_dateexec_time 似乎都没有转储到 gdx:

gams date gdx=date

此外,我尝试显示 exec_dateexec_time:

display 
    exec_date
    exec_time;

但是,我在 .lst 文件中收到以下错误消息:

  21  display
  22          exec_date
****                  0
**** 140  Unknown symbol
  23          exec_time;
****                  0
**** 140  Unknown symbol

是否可以将系统日期和时间作为字符串存储到 gdx?

此外,是否可以将日期字符串格式化为 yyyy-mm-dd?

可以这样实现:

set
    exec_date   /'%system.date%'/
    exec_time   /'%system.time%'/
;

display 
    exec_date
    exec_time
;

这输出:

----     31 SET exec_date  

12/17/20


----     31 SET exec_time  

15:32:46

并使用

保存到 gdx
gams date gdx=date