You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAS如何识别Linux目录下符合MMDDYYYY等日期格式的文件夹

SAS实现文件夹名称日期格式校验指南

核心实现逻辑

  • 第一步:过滤非8位纯数字的文件夹名,直接排除不满足基础长度和字符要求的条目
  • 第二步:使用SAS日期输入函数配合??修饰符校验两种日期格式,该修饰符可以避免解析失败时抛出错误日志和无效数据提示
  • 第三步:生成标记变量区分合法格式类型,方便后续处理

完整代码示例

data folder_with_date_flag;
    set folderonly;
    /* 初始化标记变量 */
    length date_type $20;
    date_type = "非法日期格式";
    is_valid_date = 0;

    /* 第一步:先判断是否为8位纯数字 */
    if length(fname) = 8 and anyalpha(trim(fname)) = 0 then do;
        /* 校验YYYYMMDD格式 */
        dt_ymd = input(fname, ?? yymmdd8.);
        if not missing(dt_ymd) then do;
            date_type = "YYYYMMDD";
            is_valid_date = 1;
        end;
        /* 校验MMDDYYYY格式,若已经匹配YYYYMMDD可根据需求调整是否跳过校验 */
        else do;
            dt_mdy = input(fname, ?? mmddyy8.);
            if not missing(dt_mdy) then do;
                date_type = "MMDDYYYY";
                is_valid_date = 1;
            end;
        end;
        /* 可根据需要保留解析出的日期值,调整为你需要的日期格式即可 */
        format dt_ymd dt_mdy yymmdd10.;
    end;
run;

结果说明

  • 变量is_valid_date为1时代表该文件夹名是合法日期格式,为0代表非合法格式
  • 变量date_type会标记具体的合法格式类型,可直接作为后续处理规则的判断条件
  • 若存在极少数同时符合两种格式的特殊值(比如12122024,按MMDDYYYY是2024年12月12日,按YYYYMMDD是1212年12月20日),可自行调整两种格式的校验顺序来匹配业务优先级

内容的提问来源于stack exchange,提问作者StickyRoll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:15:02