方法一:使用字段编辑器设置显示格式
- 
在窗体上选择你的数据集组件(如 TADOQuery、TFDQuery 等) 
- 
双击数据集组件打开字段编辑器 
- 
右键点击字段编辑器,选择 "Add all fields" 或添加特定的日期字段 
- 
选择日期字段,在 Object Inspector 中设置以下属性: - 
DisplayFormat: 设置为yyyy年mm月dd日
- 
EditMask: 设置为!9999年99月99日;1;_
 
- 
方法二:在数据集组件的 OnGetText 事件中处理
procedure TForm1.YourDataSetDateFieldGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  if not Sender.IsNull then
    Text := FormatDateTime('yyyy年mm月dd日', Sender.AsDateTime)
  else
    Text := '';
end;
方法三:使用 DBGrid 的 OnDrawColumnCell 事件
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  S: string;
begin
  if Column.Field.DataType = ftDate then
  begin
    if not Column.Field.IsNull then
    begin
      S := FormatDateTime('yyyy年mm月dd日', Column.Field.AsDateTime);
      DBGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, S);
    end
    else
    begin
      DBGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, '');
    end;
  end
  else
    // 让默认处理程序处理其他类型的字段
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
方法四:在 SQL 查询中格式化日期
如果你使用的是 SQL 数据库,可以在查询语句中直接格式化日期:
-- 对于 SQL Server
SELECT CONVERT(varchar, YourDateField, 112) + '年' + 
       SUBSTRING(CONVERT(varchar, YourDateField, 112), 5, 2) + '月' +
       SUBSTRING(CONVERT(varchar, YourDateField, 112), 7, 2) + '日' as FormattedDate
FROM YourTable
-- 对于 MySQL
SELECT DATE_FORMAT(YourDateField, '%Y年%m月%d日') as FormattedDate
FROM YourTable
推荐使用方法一
方法一(字段编辑器)是最推荐的方式,因为:
- 
代码简洁易维护 
- 
不影响数据编辑功能 
- 
格式设置与数据层分离 
如果你需要更复杂的日期格式或者条件格式化,可以考虑使用方法二或方法三。
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号