文本 "14-SEP-07 10:00:00" 如何转为日期类型

kzy7517 2007-09-14 05:08:58
中文版Win XP系统
var
DateTimeFormat: TFormatSettings;
ATestTime: TDateTime;
begin
DateTimeFormat.DateSeparator := '-';
DateTimeFormat.TimeSeparator := ':';
DateTimeFormat.LongDateFormat := 'DD-MMM-YY';
DateTimeFormat.ShortDateFormat := 'DD-MMM-YY';
// LongDateFormat := 'DD-MMM-YY';
// ShortDateFormat := 'DD-MMM-YY';

StrToDateTime('14-SEP-07 10:00:00', DateTimeFormat); //出错,日期格式无法识别

试了很久都不行,不知该如何设置了.
谢谢!
...全文
199 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kzy7517 2007-09-27
  • 打赏
  • 举报
回复
看来只好自己实现了.只是奇怪的是难道Delphi 2007对英文的日期支持有问题?
cuiyue4420 2007-09-14
  • 打赏
  • 举报
回复
用时间控件
gobiz 2007-09-14
  • 打赏
  • 举报
回复
那么就用个笨办法,先分割字符串,然后在EncodeDateTime好了!
kzy7517 2007-09-14
  • 打赏
  • 举报
回复
'14-Sep-07'
原代码在英文版XP中也不行,并且试过修改区域中的格式也不行.
更为气愤的是,在英文版XP中,先从now()转为文本为'14-Sep-07'(DateToStr),再立即将文本转为Date也报同相的错误(StrToDate).

lynmison :
试过了,将ShortMonthNames 和LongMonthNames 都设置了(各12个月),如下:
DateTimeFormat.ShortMonthNames[1] := 'SEP'
还是不行.


天行归来 2007-09-14
  • 打赏
  • 举报
回复
var
DateTimeFormat: TFormatSettings;
ATestTime: TDateTime;
begin
GetLocaleFormatSettings(0,DateTimeFormat);
{以下是调用 GetLocaleFormatSettings 后,DateTimeFormat值,猜想如果把月份填成英文的,是否能成功格式化你的日期时间?
(0, 2, ',', '.', 2, '-', ':', ',', '¥', 'yyyy-MM-dd', 'yyyy'年'M'月'd'日'', '上午', '下午', 'hh:mm', 'hh:mm:ss', ('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'), ('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'), ('星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'), ('星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'), 0)}

//试试看设置 月份 的格式?
StrToDateTime( '14-SEP-07 10:00:00 ', DateTimeFormat);
end;

5,388

社区成员

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

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