小编Mat*_*aza的帖子

TryStrToDate失败,格式为mmm/yy

我试图将mmm/yy格式的字符串转换为TDateTime使用该TryStrToDate函数的字符串.然而它似乎总是失败.

我创建一个格式设置记录并设置日期分隔符和短日期格式.我设置了长日期格式,以表明无论是设置短日期还是长日期格式都会出现问题.

如果我改变示例使用dd/mm/yyyy并在2017年1月1日通过然后它成功,所以我相信问题可能是格式.我使用以下链接作为创建格式字符串的参考

http://www.delphibasics.co.uk/RTL.asp?Name=formatdatetime

我制作了一个演示控制台应用程序来展示我想要做的事情的一个例子

uses
   System.SysUtils;

function ValidateDate(ADate: string): boolean;
var
    fs: TFormatSettings;
    DateTime: TDateTime;
begin
    fs := TFormatSettings.Create();
    fs.DateSeparator := '/';
    fs.ShortDateFormat := 'mmm/yy';
    fs.LongDateFormat := 'mmm/yy';

    result := true;
    if not TryStrToDate(ADate, DateTime, fs) then
        result := false;
end;

begin
    try
        if not ValidateDate('Oct/16') then
            WriteLn('Failed to convert')
    except
        on E: Exception do
            Writeln(E.ClassName, ': ', E.Message);
    end;
end.
Run Code Online (Sandbox Code Playgroud)

我会欣赏任何关于为什么失败的想法

delphi date delphi-10-seattle

2
推荐指数
1
解决办法
488
查看次数

标签 统计

date ×1

delphi ×1

delphi-10-seattle ×1