从ISO datetime字符串生成Stata日期变量

时间:2017-12-17 22:16:40

标签: stata

我的日期时间字符串如下所示:

starttime = 2017-01-03T00:00:00.000000-05:00

我想从那个刺痛中生成Stata日期时间变量,但是我遇到了困难。这是我正在使用的代码:

generate stataDate = clock(starttime, "YMD!THH:MM:SS")

您知道使用此字符串的正确桅杆吗?我一直在查看文档,但找不到答案。

1 个答案:

答案 0 :(得分:1)

以下内容可能会为您指明一个有用的方向。

clear
input str32 starttime
"2017-01-03T00:00:00.000000-05:00"
"2017-01-03T12:34:56.654321-05:00"
end
generate double sd = clock(starttime,"YMD#hms##")
format sd %tcCCYY-NN-DD_HH:MM:SS.sss

产生

. list, clean

                              starttime                        sd  
  1.   2017-01-03T00:00:00.000000-05:00   2017-01-03 00:00:00.000  
  2.   2017-01-03T12:34:56.654321-05:00   2017-01-03 12:34:56.654  

值得注意的是,Stata日期时间值的精度限制是毫秒:这些是存储值的单位。同样重要的是,datetime值必须存储为double数值而不是float,这不能保持完全准确。

Stata的日期和时间变量很复杂,还有很多东西需要学习。如果您还没有阅读 Stata用户指南 PDF的详细第24章(使用日期和时间),请立即阅读。如果有的话,是时候复习了。在那之后,help datetime文档通常足以指明方向。你不记得一切;即使是最有经验的用户最终也会参考help datetime文档或返回手册以获取详细信息。但至少你会对基础知识和基本原理有一个很好的理解。投入足够的时间进行投资。