TATA中声明时序时将UNIX时间戳转成%tc时钟格式出现时间不一致的问题以及一种可行解决方法(后来发现SPSS、excel等软件也会有类似问题)
1. 问题展现
UNIX时间戳在STATA中直接更改为%tc格式的结果如下表所示。
| 序号 | 时间戳ts | STATA %tc格式显示结果 | 对应的正确时间 |
|---|---|---|---|
| 1 | 1590394690 | 19jan1960 09:46:34:690 | 25may2020 08:18:10:000 |
| 2 | 1590394700 | 19jan1960 09:46:34:700 | 25may2020 08:18:20:000 |
| 3 | 1590394710 | 19jan1960 09:46:34:710 | 25may2020 08:18:30:000 |
然而,时间戳对应的时间(UTC+8)应如下图所示。

2. 解决方法及原理
2.1 直接上公式
- 将UNIX时间戳记为:ts
将stata可正确转换的时间戳(后简称“stata时间戳”)记为:ts_stata
那么:
ts_stata=(ts+315619200)*1000
2.2 公式解释
2.2.1 UNIX时间戳与stata时间戳
- UNIX时间戳是从格林威治时间(UTC+0)1970年01月01日00时00分00秒起至现在的总秒数
- stata时间戳是从格林威治时间(UTC+0)1960年01月01日00时00分00秒起至现在的总豪秒数
2.2.2 公式中的数字
- 1000:秒到毫秒的转换
- 315619200:从1960年到1970年的总秒数。
315619200=(366*3+366*7)*24*60*60*1000
探讨了在STATA软件中UNIX时间戳转换为%tc格式时遇到的时间不一致问题,并提供了一种有效的解决方案。该方案通过特定公式将UNIX时间戳调整为STATA能正确解析的格式。


被折叠的 条评论
为什么被折叠?



