gpt4 book ai didi

delphi - Indy10 GMTToLocalDateTime问题

转载 作者:行者123 更新时间:2023-12-03 18:26:40 24 4
gpt4 key购买 nike

似乎Indy GMTToLocalDateTime在解码日期时不会忽略注释:

TDateTime dtDate1 = GMTToLocalDateTime("12 Mar 2015 14:03:21 -0000");
TDateTime dtDate2 = GMTToLocalDateTime("Thu, 12 Mar 2015 14:03:20 +0000 (GMT)");
TDateTime dtDate3 = GMTToLocalDateTime("Thu, 12 Mar 2015 14:03:20 +0000 (envelope-from <aaa@bbb.ccc>)");
TDateTime dtDate4 = GMTToLocalDateTime("Thu, 12 Mar 2015 14:03:20 +0000 (aaa@bbb.ccc)");

UnicodeString Dt1 = DateTimeToStr(dtDate1);
UnicodeString Dt2 = DateTimeToStr(dtDate2);
UnicodeString Dt3 = DateTimeToStr(dtDate3);
UnicodeString Dt4 = DateTimeToStr(dtDate4);


前2个被正确解码。最后两个不是。
括号中的部分应该被忽略,因为它只是注释,但似乎不是。

这是Indy中的错误吗?
另外-是否有Indy的错误跟踪器(论坛似乎已关闭)?

最佳答案

GMTToLocalDateTime()(更具体地说是RawStrInternetToDateTime())并不意味着接受或寻找嵌入的注释。注释不属于输入,必须事先删除。嵌入式注释是电子邮件的功能,但是在处理数据时将被忽略(请参阅RFC 822第3.4.3节)。

在这种情况下,调用者未删除注释,并且在检查时间戳是否存在以及是否使用<时,最后两个示例的注释中的'.'字符已被删除。 cc>或RawStrInternetToDateTime()作为小时/分钟/秒之间的分隔符。

整个Indy都无法识别甚至不处理标题中的嵌入式注释。但是,在这种情况下,我对':'进行了一些微调,因此注释不会再使时间戳解析变得混乱(尽管调用者有责任在解析之前剥离注释)。

是的,Indy有一些错误跟踪器:

http://code.google.com/p/indyproject
(尽管Google Code is shutting down,所以这个最终会消失)。

http://indy.codeplex.com

关于delphi - Indy10 GMTToLocalDateTime问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29054900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com