我的日期时间字符串如下所示:
starttime = 2017-01-03T00:00:00.000000-05:00
我想从那个刺痛中生成Stata日期时间变量,但是我遇到了困难。这是我正在使用的代码:
generate stataDate = clock(starttime, "YMD!THH:MM:SS")
您知道使用此字符串的正确桅杆吗?我一直在查看文档,但找不到答案。
答案 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
文档或返回手册以获取详细信息。但至少你会对基础知识和基本原理有一个很好的理解。投入足够的时间进行投资。