四位年度表示输入(100分)

  • 主题发起人 主题发起人 wyw8504
  • 开始时间 开始时间
W

wyw8504

Unregistered / Unconfirmed
GUEST, unregistred user!
2002年了,delphi中输入日期还是2位年份表示,有没有好办法解决,如powerbuilder中就没有此类问题,解决到那个程度就可以了。
 
在控制面板---->区域设置----->日期--->短日期样式:='YYYY-MM-DD',就OK了,不过建议在设计程序的时候,不要太个
性化,那将会给你的软件发布带来很多不必要的麻烦.
 
不要直接在面板中改,用程序写吧
在formcreate下
shortdateformat:='yyyy-mm-dd';
DateSeparator := '-';
 
我好象没遇到这个困难呀,难道你是说数据库中吗?
 
在控制面板中改更方便。
 
不要直接在面板中改,用程序写吧
在formcreate下
shortdateformat:='yyyy-mm-dd';
DateSeparator := '-';
 
同意kingdeezj
 
kingdeezj的方法是对的
 
同意在程序中写~~~
 
个人观点:
如果你是文件型的数据库,如Paradox或Access之类的,用ljj的方法在程序中改比较好,
这样不会影响其它所制于当前显示格式的软件的使用。当然,如果是BDE的程序,改BDE
的设置也比较好,但会影响其它程序。
但如果你的机器上还有数据库服务器的话,最好还是改控制面板,以保持数据库与程序
的日期格式的统一。
 
FormatDateTime('yyyy-mm-dd',StrToDate(Tmp1))
 
可以在控制面板中手工修改区域设置, 日期改为 yyyy-mm-dd 类型即可
程序中修改:

//强制写日期格式
try
htwWriteRegisry('sShortDate','yyyy-MM-dd' ,HKEY_CURRENT_USER, '/Control Panel/International');
htwWriteRegisry('sShortDate','yyyy-MM-dd' ,HKEY_USERS, '/.DEFAULT/Control Panel/International');
setlocaleinfo(LOCALE_SYSTEM_DEFAULT,LOCALE_SDATE,'yyyy-MM-dd');
except
end;
DateSeparator := '-';
shortdateformat:='yyyy-mm-dd';
ShortTimeFormat:='hh:mm:ss';
s:=application.UpdateFormatSettings;


function htwReadRegisry( RegKey :string ; Default :string ; MyRootKey : Hkey; MyOpenKey :string): string ;
var
Registry: TRegistry;
S : string;
begin
Registry:= TRegistry.Create;
try
begin
Registry.RootKey :=MyRootKey; // HKEY_CURRENT_USER;
Registry.OpenKey(MYOpenKey,false); // Registry.OpenKey('/Software/MachineAdministrator',false);
S := Registry.ReadString(RegKey);
end
finally
begin
Registry.CloseKey;
Registry.Free;
end;
if Trim(S)='' then Result := Default
else Result := S;
end;

end;

procedure htwWriteRegisry(RegKey :string ;asValueTobewrited : string; MyRootKey : Hkey; MyOpenKey :string );
var
Registry: TRegistry;
begin
Registry:= TRegistry.Create;
try
begin
Registry.RootKey :=MyRootKey; // HKEY_CURRENT_USER;
Registry.OpenKey(MyOpenKey,true); //Registry.OpenKey('/Software/MachineAdministrator',true);
Registry.WriteString(RegKey,asValueTobewrited);
end
finally
begin
Registry.CloseKey;
Registry.Free;
end;
end;
end;

 
后退
顶部