应该是要单独设定.因为日期时间本身是没有格式.而不是这个日期型是yyyy-mm-dd 
那个是dd-mm-yyyy, 所以必须设定显示模式

解决方案 »

  1.   

    日期格式可以自定义显示。用FormatDateTime函数。结合以下全局变量(in SysUtils.pas)的设置,可以显示几乎你能想到的日期时间格式。时间日期字段的显示可以在字段编辑器中的OnGetText事件中写入如下程序:
    procedure TData.Q_DHDAJF_IDGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    begin
         if DisplayText then
         begin
            Text := FormatDateTime('yyyy"年"mm"月"dd"日"',Sender.AsDateTime);
            if Sender.Value = Null then Text := '' ;
         end else
             Text := Sender.AsString ;
    end;附:和日期时间货币显示格式相关的全局变量
      CurrencyString: string;
      CurrencyFormat: Byte;
      NegCurrFormat: Byte;
      ThousandSeparator: Char;
      DecimalSeparator: Char;
      CurrencyDecimals: Byte;
      DateSeparator: Char;
      ShortDateFormat: string;
      LongDateFormat: string;
      TimeSeparator: Char;
      TimeAMString: string;
      TimePMString: string;
      ShortTimeFormat: string;
      LongTimeFormat: string;
      ShortMonthNames: array[1..12] of string;
      LongMonthNames: array[1..12] of string;
      ShortDayNames: array[1..7] of string;
      LongDayNames: array[1..7] of string;
      SysLocale: TSysLocale;
      EraNames: array[1..7] of string;
      EraYearOffsets: array[1..7] of Integer;
      TwoDigitYearCenturyWindow: Word = 50;
      ListSeparator: Char;
      

  2.   

    同意Luke!在程序启动的时候设置这些全局变量即可。
      

  3.   

    xzisgood说得有道理,Delphi中的时间实际就是浮点数。
    不信你把两个日期相减试试
      

  4.   

    到底怎样进行呢?
    比如进行程序后,每个DATETIMEPICKER控件的日期格式都为'yyyy年mm月dd日'?
    (比如2001年12月30日的格式而非2001-12-30的系统指定格式)
      

  5.   

    改变DATETIMEPICKER的属性
    DATEFORMAT为DFLONG就行了。
      

  6.   

    各位,我是说例如DATETIMEPICKER控件,还包括其他任何出现日期控件的地方。再说你们的方法只要改变'控制面板'下的区域中的日期显示格式便没用了。
      

  7.   

    日期显示格式没有统一的设置。完全靠自己设置的。
    因为日期时间本质上是一个浮点数(好像在操作系统一级就如此),
    不光是Delphi,包括Oracle等数据库系统,都将时间当作浮点数处理。
    所以,没有如你所说的一劳永逸的方法。
    另外,Delphi的时间变量的设置,可能实际上是调用操作系统的接口,
    所以,你改变“控制面板”的设置也会改变程序的表现。