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

Delphi中如何将月份数字转换为月份名称?

Delphi通过月份数字/日期获取英文完整月份名称

1. 根据月份数字获取英文完整月份名称

Delphi有内置的日期格式化函数可以直接实现,不需要写一堆if判断。核心思路是利用FormatDateTime配合'mmmm'格式符(表示完整月份名称),结合EncodeDate生成一个对应月份的日期(选任意包含该月份的年份即可,比如2000年,闰年可确保所有月份都有1号),再指定英文区域的格式设置来保证输出英文名称。

示例代码:

function GetMonthNameByNum(MonthNum: Integer): string;
var
  FS: TFormatSettings;
begin
  // 指定英文(美国)区域的格式设置
  FS := TFormatSettings.Create('en-US');
  // 生成对应月份的日期,再提取完整月份名称
  Result := FormatDateTime('mmmm', EncodeDate(2000, MonthNum, 1), FS);
end;

2. 根据TDate获取对应月份名称

如果直接传入TDate类型的日期,同样可以用FormatDateTime直接提取月份名称,指定英文格式设置可避免系统区域影响:

示例代码:

function GetMonthNameByDate(ADate: TDate): string;
var
  FS: TFormatSettings;
begin
  FS := TFormatSettings.Create('en-US');
  Result := FormatDateTime('mmmm', ADate, FS);
end;

为什么不用硬编码的if判断?

内置函数的方式更简洁易维护,不需要手动维护月份字符串列表;同时通过指定格式设置,可以稳定输出英文名称,不受系统当前区域语言的影响,比硬编码更灵活可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:12:05