再问:显示时间的问题,问什么分针不刷新

wendy_welcom 2008-11-17 10:31:02

procedure TForm1.Timer1Timer(Sender: TObject); //timer的Interval = 1000;
begin
Label1Click(Sender);
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
Label1.Caption:=FormatDateTime('yyyy年MM月dd日 hh时mm分ss秒', now);
end;


如上,我的代码,显示的结果是

画红线的分钟总是显示11分 , 秒针可以刷新, 但是从00秒刷新到59秒后,分针并不刷新,仍然是11分。 而且无论何时运行,分针总是11分。

请前辈帮我解决一下吧。谢谢了。
...全文
80 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fzzfz 2008-11-17
Label1.Caption:=FormatDateTime('yyyy年MM月dd日 hh时nn分ss秒', now);

function FormatDateTime(const Format: string; DateTime: TDateTime): string;

Format参数是一个格式化字符串。DateTime是时间类型。返回值是一种格式化后的字符串,重点来看Format参数中的指令字符:

c 以短时间格式显示时间,即全部是数字的表示
FormatdateTime(c,now);
输出为:2004-8-7 9:55:40

d 对应于时间中的日期,日期是一位则显示一位,两位则显示两位
FormatdateTime(d,now);
输出可能为1~31
dd 和d的意义一样,但它始终是以两位来显示的
FormatdateTime(dd,now);
输出可能为01~31
ddd 显示的是星期几
FormatdateTime(ddd,now);
输出为: 星期六
dddd 和ddd显示的是一样的。
但上面两个如果在其他国家可能不一样。
ddddd 以短时间格式显示年月日
FormatdateTime(ddddd,now);
输出为:2004-8-7
dddddd 以长时间格式显示年月日
FormatdateTime(dddddd,now);
输出为:2004年8月7日

e/ee/eee/eeee 以相应的位数显示年
FormatdateTime(ee,now);
输出为:04 (表示04年)

m/mm/mmm/mmmm 表示月
FormatdateTime(m,now);
输出为:8
FormatdateTime(mm,now);
输出为 08
FormatdateTime(mmm,now);
输出为 八月
FormatdateTime(mmmm,now);
输出为 八月
和ddd/dddd 一样,在其他国家可能不同

yy/yyyy 表示年
FormatdateTime(yy,now);
输出为 04
FormatdateTime(yyyy,now);
输出为 2004

h/hh,n/nn,s/ss,z/zzz 分别表示小时,分,秒,毫秒
t 以短时间格式显示时间
FormatdateTime(t,now);
输出为 10:17
tt 以长时间格式显示时间
FormatdateTime(tt,now);
输出为10:18:46

ampm 以长时间格式显示上午还是下午
FormatdateTime(ttampm,now);
输出为:10:22:57上午

如果要在Format中加普通的字符串,可以用双引号隔开那些特定义的字符,这样普通字符串中如果含特殊的字符就不会被显示为时间格式啦:
FormatdateTime("today is" c,now);
输出为:today is 2004-8-7 10:26:58

时间中也可以加"-"或"\"来分开日期:
FormatdateTime("today is" yy-mm-dd,now);
FormatdateTime("today is" yy\mm\dd,now);
输出为: today is 04-08-07

也可以用":"来分开时间
FormatdateTime("today is" hh:nn:ss,now);
输出为:today is 10:32:23

  • 打赏
  • 举报
回复
fangsp 2008-11-17
不过
Label1.Caption:=FormatDateTime('yyyy年MM月dd日 hh时mm分ss秒', now);
我这用是可以的
  • 打赏
  • 举报
回复
fangsp 2008-11-17
Label1.Caption:=FormatDateTime('yyyy年MM月dd日 hh时nn分ss秒', now);
这样试一下
  • 打赏
  • 举报
回复
天行归来 2008-11-17
Label1.Caption:=FormatDateTime('yyyy年MM月dd日 hh时nn分ss秒', now);
  • 打赏
  • 举报
回复
御影北斗 2008-11-17
显然你说的11是读取你的时间里的月份而不是分钟 你应该多看一下FormatDateTime的具体用法
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi
加入

5094

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
申请成为版主
帖子事件
创建了帖子
2008-11-17 10:31
社区公告
暂无公告