将 SPSS 中的时间从 hhmm:ss 转换为 hh:mm:ss (TIME8)

Converting time in SPSS from hhmm:ss to hh:mm:ss (TIME8)

数据导出后,我得到一个字符串变量“2017/02/22 1320:35 +000 4”。

通过:

compute #TS = char.index(Timestamp_1, " ").
string date (A10).
compute date = char.substr(Timestamp_1,1,#TS).
alter type date (A10 = SDATE10).

我设法在一个单独的变量中获取日期。

相同:

string time (A8).
compute time = char.substr(Timestamp_2,#TS+1,7). 
alter type time (A8 = TIME8).

暂时不起作用,因为它是 'hhmm:ss' 格式。如何将字符串变量“1320:35”更改为时间变量“13:20:35”?

您可以在更改类型之前使用 concat 函数手动将“:”插入时间字符串。

COMPUTE time = CONCAT(CHAR.SUBSTR(time,1,2),":",(CHAR.SUBSTR(time,3))).

另一种方法是分别从 Timestamp 变量中提取小时、分钟和秒,并在 TIME.HMS 函数中使用这些元素:

COMPUTE #hh = NUMBER(CHAR.SUBSTR(Timestamp_1,TS+1,2),F2).
COMPUTE #mm = NUMBER(CHAR.SUBSTR(Timestamp_1,TS+3,2),F2).
COMPUTE #ss = NUMBER(CHAR.SUBSTR(Timestamp_1,TS+6,2),F2).

COMPUTE time = TIME.HMS(#hh,#mm,#ss).
EXECUTE.

FORMATS time (TIME8).

统计信息具有日期时间格式和 V24 中的新增功能,即 ISO 8601 时间戳格式 YMDHMS。如果将字符串转换为常规 date/time 值,则可以使用 XDATE.DATE 和 XDATE.TIME 函数来提取片段。日期和时间向导可能适合您的格式(不确定最后的 +000 4 部分)。