在文件名中添加时间

use*_*459 2 stata stata-macros

考虑下面的代码片段:

local date: display %td_CCYY_NN_DD date(c(current_date), "DMY")
local date_string = subinstr(trim("`date'"), " " , "", .)
save "`date_string'_example", replace
mkdir "`date_string'_example"
Run Code Online (Sandbox Code Playgroud)

这将创建如下输出:

20170521_example.dta
Run Code Online (Sandbox Code Playgroud)

但是,我想创建一个文件名,它也要有时间,而不仅仅是日期。如果时间是下午4点25分01秒,那么我希望具备以下条件:

20170521_162601_example.dta
Run Code Online (Sandbox Code Playgroud)

如何添加此元素?

我尝试将函数放入c(current_time)其中,date()但这没有用。

此外,我试图分配本地宏savedir使用date_string。但是,似乎Stata在后面跟随时无法识别它\

local date: display %td_CCYY_NN_DD date(c(current_date), "DMY")
local date_string = subinstr(trim("`date'"), " " , "", .)
local savedir "C:\Users\`date_string'_output"
cd "`savedir'
Run Code Online (Sandbox Code Playgroud)

如何保存本地宏savedir

Pea*_*cer 6

您可以按以下方式获得所需的输出:

local datetime_string : display %tc_CCYYNNDD_HHMMSS clock(c(current_date) + " " + ///
                         c(current_time), "DMYhms")
Run Code Online (Sandbox Code Playgroud)

关于第二个问题,只需将\文件路径替换为/

Stata可以在所有操作系统上的文件路径中使用正斜杠,并且Stata将注意在Windows上正确转换它们。