我用'mmm dd,yyyy'格式化日期型字段时,显示出来的月份是中文,我用的是中文win98,将区域改为美国后,显示出月份才是英文。我想在区域为中国时显示的月

  • 主题发起人 主题发起人 问到底
  • 开始时间 开始时间

问到底

Unregistered / Unconfirmed
GUEST, unregistred user!
我用'mmm dd,yyyy'格式化日期型字段时,显示出来的月份是中文,我用的是中文win98,将区域改为美国后,显示出月份才是英文。我想在区域为中国时显示的月分为英文,该如何做? (50分)<br />我用'mmm dd,yyyy'格式化日期型字段时,显示出来的月份是中文,我用的是中文win98,
将区域改为美国后,显示出月份才是英文。我想在区域为中国时显示的月分为英文,该如
何做?
 
自己写个输出函数
 
还有没有其它办法?难道连么简单的事情都还要自已写函数?
 
这是系统级的函数,除非你在输出前将区域改为美国,输出后再改回来!
 
如何改?我在fastreport中用会不会有什么麻烦?
 
恐怕还不如你自己编一个快!
自己写不会超过10行代码
 
不知是否有现成的?
 
参考这里。我的代码
http://www.delphibbs.com/delphibbs/dispq.asp?lid=755748
 
谢谢你,我这个还要用到fastreport中的,真的没有更好的办法了吗?
 
当然可以啊。你可以在Fastreport中添加一个QLable;在Qlabel打印事件里把日期转成文本;
输出;
 
不用改区域,改系统时间格式呀:不过也是在控制面板-》区域设置中,有一个日期格式可以设。
 
哪一个,我怎么找不到呢?
 
那用那么麻烦,还用控制面板改区域设置什么的,
改一下ShortMonthNames不就结了???一个小例子:

unit Unit1;

interface

uses
; Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
; StdCtrls;

type
; TForm1 = class(TForm)
; ; Button1: TButton;
; ; Button2: TButton;
; ; procedure Button1Click(Sender: TObject);
; ; procedure Button2Click(Sender: TObject);
; private
; ; { Private declarations }
; public
; ; { Public declarations }
; end;

var
; Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
; i:Integer;
begin
; for i := 1 to 12 ;do
; begin
; ; ;ShortMonthNames:= '第 '+IntToStr(i)+' 月';
; end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
; s:String;
begin
; s:=formatDateTime('YYYY-MMM-DD',Date);
; ShowMessage(S);
end;

end.
你可以试试,在按下Button1前后,显示的日期有什么不同。只要在系统初始化
时运行一次,就对程序终身有效,但不影响其它程序(不象控制面板-&gt;区域设置)
 
杜宝啊,你抄了之后也要改一改啊,人家要的是英文啊
 
to Pipi:呵呵,上面的例子是我自己临时写的,E文不好,
也没时间去查E文的月份名什么的,不如老大把它补全如何?
反正的就是:
ShortMonthNames[1] := JarXXXXX
ShortMonthNames[2] := ;FebYYYY...

原理已经在这里了,他想改成什么的都行啊!
 
不好意思,我的E文也是能看不能写:)
 
谢谢你杜宝,我用你的思路了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部