日期转换问题?

bitter 2000-04-19 10:50:00
我想把'000418'转换成2000-04-18
但d5总报转换错误,自己设定shortDateFormat('yymmdd')也不行
如何解决?
...全文
297 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hony 2000-05-26
  • 打赏
  • 举报
回复
我提供一个很常用的方法,很有效.先定义3个word变量 var y,m,d:word;
在某过程中加入下面代码,假定在edit1编辑框中显示.
代码为:
decodedate(date,y,m,d);
edit1.text:=y+'-'+m+'-'+d;
是不是很方便?^o^
zyc 2000-05-22
  • 打赏
  • 举报
回复
在Delphi中,日期的字串必须有分隔符。象000418的字串在没有经变换的前提下是不能由Delphi的strtodate来转换的。以下提供一种方法,在对原来字串经少量处理后可实现你想要的功能,程序如下:

procedure TForm1.Button1Click(Sender: TObject);
var
sd,s:string;
dt:TDatetime;
begin
shortdateformat := 'yy-mm-dd';
s :='000418';
insert('-',s,3);
insert('-',s,6);
dt := strtodate(s);
shortdateformat:='yyyy-mm-dd';
sd := datetostr(dt);
Edit1.Text :=sd;
end;

你在一个新的工程中加入一个Button和一个Edit, 在Buton1的Onclick加入上述代码即可看到结果。
xiaonan 2000-05-21
  • 打赏
  • 举报
回复
var
str:string;
d1,d2:datetime;
begin
d1:=strtodatetime(str);
str :=formatdatetime('yyyy-mm-dd',d1);
d2:=strtodatetime(str);
end;
解释:d2为返回值。
zoao 2000-04-20
  • 打赏
  • 举报
回复
进行截取
supershan 2000-04-20
  • 打赏
  • 举报
回复
你可用程序实现,进行截取
点点 2000-04-20
  • 打赏
  • 举报
回复
你试一试下面的程序,我已验证过
procedure TForm1.Button1Click(Sender: TObject);
var
D:tdatetime;
begin
ShortDateFormat:='YYYY-MM-DD';
LongDateFormat:='YYYY-MM-DD';
DateSeparator:='-';
TwoDigitYearCenturyWindow := 90;
D:=strtodate('00-04-18');
showmessage(datetostr(D));
end;
Date 对象属性constructor 返回对创建此对象的 Date 函数的引用。prototype 使您有能力向对象添加属性和方法。Date 对象方法getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。getFullYear() 从 Date 对象以四位数字返回年份。getHours() 返回 Date 对象的小时 (0 ~ 23)。getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。getMonth() 从 Date 对象返回月份 (0 ~ 11)。getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。getTime() 返回 1970 年 1 月 1 日至今的毫秒数。getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。getYear() 已废弃。 请使用 getFullYear() 方法代替。parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。setFullYear() 设置 Date 对象中的年份(四位数字)。setHours() 设置 Date 对象中的小时 (0 ~ 23)。setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。setMonth() 设置 Date 对象中月份 (0 ~ 11)。setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。setTime() setTime() 方法以毫秒设置 Date 对象。setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。setUTCSeconds() setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。setYear() 已废弃。请使用 setFullYear() 方法代替。toDateString() 把 Date 对象的日期部分转换为字符串。toGMTString() 已废弃。请使用 toUTCString() 方法代替。toISOString() 使用 ISO 标准返回字符串的日期格式。toJSON() 以 JSON 数据格式返回日期字符串。toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。toString() 把 Date 对象转换为字符串。toTimeString() 把 Date 对象的时间部分转换为字符串。toUTCString() 根据世界时,把 Date 对象转换为字符串。UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。valueOf() 返回 Date 对象的原始值。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧