我的数据集中有一个日期变量(当前为数字),它有三种类型的日期:
>
仅年份(yyyy)
if length(Date)=4 then DateF=mdy(1,1,substr(Date,1,4));
if length(Date)=6 then DateF=mdy(substr(Date,5,2),1,substr(Date,1,4));
if length(Date)=8 then DateF=mdy(substr(Date,5,2),substr(Date,7,2),substr(Date,1,4));
Date2=input(put(DateF,8.),YYMMDD8.);
format Date2 YYMMDD8.;
有人能告诉我我的代码出了什么问题吗?谢谢!
因此,要调试代码,您可以首先尝试将您的一些假设打印到屏幕上。首先打印if
语句的结果...
data blah;
format date best.;
input date;
test1 = length(date);
put test1=;
datalines;
2014
201408
20140829
;
run;
这给出:
test1=12
test1=12
test1=12
显然不是我们所期待的。当数字字段自动转换为字符变量时,它看起来像是12个字符长的字段,并且在转换时,在前面填充空格。我们可以通过将put语句替换为以下语句来检查这一点:
test2 = "*" || length(cats(date)) || "*";
put test2=;
test2=* 4*
test2=* 6*
test2=* 8*
data blah;
format date best.;
input date;
tmp_date = cats(date);
if length(tmp_Date)=4 then DateF=mdy(1,1,substr(tmp_Date,1,4));
if length(tmp_Date)=6 then DateF=mdy(substr(tmp_Date,5,2),1,substr(tmp_Date,1,4));
if length(tmp_Date)=8 then DateF=mdy(substr(tmp_Date,5,2),substr(tmp_Date,7,2),substr(tmp_Date,1,4));
format Datef YYMMDD8.;
datalines;
2014
201408
20140829
;
run;
cats()
函数将为我们进行转换,并修剪前导空格和尾随空格!超级有用...无论如何,希望这解释了哪里出了问题,以及以后如何调试自己的代码=)。
如何将此日期类型“Thu Feb 02 12:00:00 GMT-12:00 2012”更改为另一个日期类型“YYYY-MM-DD HH:MM:SS”?如果“Thu Feb 02 12:00:00 GMT-12:00 201 2”为字符串类型,如何转换“YYYY-MM-DD HH:MM:SS”的日期类型? java代码: 输出为字符串类型。我想获得日期类型输出,所以我添加了以下代码。
我是SAS的新手,我有一个如下所示的数据集: 现在我想把这些数字转换成日期格式。然后找出由此得到的日期的差异(以天为单位)。我尝试了“通知”的方式,但没有取得任何进展。请帮助....
我的输入值是'13/5/201412:00:00am',我需要将此格式更改为'2014-5-1300:00:00',但所有的datetime变量都是以dd-mm-yyyy格式返回的。我不想将日期转换为字符串,我希望将日期值存储在datetime属性中,并使用'yyyy-mm-dd'格式:
问题内容: 我正在使用需要json日期格式的API。 我需要转换我的JavaScript日期 1970年1月17日星期六格林尼治标准时间+0100(浪漫标准时间) 以json日期格式 /日期(1405699200)/ 问题答案: 列各项可以吗?