我正在编写一个实用程序,帮助维护打算在 GitHub 和/或 SSC 上发布的 Stata 包。它尚未发布,因此缺乏文档,但存储库是公开的,因此如果有人好奇,这里有一个链接:https://github.com/lsms-worldbank/adodown。这是
ad_publish
命令的一部分。
我目前正在开发的工具可以自动更新 ado 和 sthlp 文件标题中的版本和日期的手动过程。我的问题是关于日期的格式。
Ado 文件的第一行通常有这样的内容:
*! version 3.31 26apr2022 Ben Jann
(estout)*! version 6.12.3 08aug2023
(reghdfe)和 sthlp(/hlp) 文件:
{* 01feb2017}{...}
(estout){* *! version 6.12.3 08aug2023}{...}
(reghdfe)日期可以采用不同的格式吗?在 .pkg 文件中,有一行
d Distribution-Date: 20230821
(reghdfe),其中日期始终采用该格式。这是 Stata 关于 pkg 文件的文档,始终使用 20230821
格式。虽然它没有明确说明需要任何格式。
所以我的问题是,有没有人看到在 ado 和 sthlp 文件的标头中不使用
20230821
格式的原因? (除了我们的美国朋友在日之前出现月份时感到困惑:))。我认为这种日期格式在这种情况下更好,因为 20230821
可以按字母数字排序,以对 08aug2023
无法排序的日期进行排序。
为了完成,这是我打算使用的格式。我唯一不相信会很好地工作的是日期格式。
*! version V.V YYYYMMDD <author> <contact>
{* *! version V.V YYYYMMDD }{...}
据我了解,Stata 一点也不关心你在
*!
后面放什么。它只是查找以这种方式开头的行,并根据 which
查询回显它们。
相比之下,我认为为了 Kit Baum 的方便,SSC 上用于维护 .pkg 文件的例程标准化了日期格式 20230213。
在我自己的命令中,我通常遵循我之前在同一命令中使用的日期格式,无论是 13feb2023 还是 13 Feb 2023 或者 13 February 2023。在 30 年的 ados 写作生涯中,我没有听到过任何日期格式是对其他人来说都是有问题的,而且我无法想象您的格式除了第三方可能不愿意采用之外还有任何问题。
我不使用也无法在 GitHub 上发表评论。
关于日期格式,Stata 提供了日期显示方式的灵活性:
Stata 日期格式:
%td
格式将每日日期显示为“20jan2010”或“2010.01.20”。%tc
格式将日期和时间显示为“20jan2010 15:15:30”或“Wed Jan 20 15:15:30 2010”。 您建议的格式:
注意事项:
处理月日混乱:
您建议的格式应该可以很好地工作,特别是对于排序目的。只要您始终如一地应用它并清楚地记录下来,这就是一个合理的选择。快乐编码! 🚀