代码之家  ›  专栏  ›  技术社区  ›  Larry

将月份(日期)转换为整月(字符串)

  •  2
  • Larry  · 技术社区  · 7 年前

    我有一个日期字段(adate10),名为period,值为07/02/2018。

    我需要把它转换成一个字符串,比如“2018年7月2日”。

    我可以使用下面的代码生成一个字符串period_string,上面写着“2018年7月2日”。我不知道如何将月份格式设置为整月,例如“七月”。创建if/then语句的唯一选项是“if 1 then”January“、if 2 then”February“等吗?希望有一个内置的格式,但找不到。

    * extract each date element, then format.
    compute mo = xdate.month(Period).
    compute da = xdate.mday(Period).
    compute yr = xdate.year(Period).
    
    formats mo (month) da yr (F4.0).
    execute.
    
    * concatentate date elements as strings.
    string Period_String (a30).
    compute Period_String = concat(ltrim(string(mo,month)), " ", ltrim(string(da,F4)), ", ", ltrim(string(yr,F4))).
    execute.
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   eli-k    6 年前

    见修改后的月份格式( month9 month

    compute Period_String = concat(ltrim(string(mo,month9)), " ", ltrim(string(da,F4)), ", ", ltrim(string(yr,F4))).
    

    编辑
    使用@mirrai的一行建议+只获取大写首字母:

    string Period_String(a20).
    COMPUTE Period_String = CONCAT(
                RTRIM(char.substr(STRING(period,MONTH9),1,1)),
                RTRIM(lower(char.substr(STRING(period,MONTH9),2)))," ",
                LTRIM(STRING(XDATE.MDAY(Period),F2)), ", ", 
                LTRIM(STRING(XDATE.YEAR(period),F4))
                ).