首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Indy10 GMTToLocalDateTime问题

Indy10 GMTToLocalDateTime问题
EN

Stack Overflow用户
提问于 2015-03-14 22:16:20
回答 1查看 271关注 0票数 2

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

代码语言:javascript
复制
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位被正确解码。最后两个不是。括号中的部分应该被忽略,因为它只是一个评论,但它似乎不是。

这是印第的窃听器吗?还有-是否有一个错误跟踪的印第(因为它似乎论坛被关闭)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-14 23:09:16

GMTToLocalDateTime() (更确切地说,是RawStrInternetToDateTime())并不意味着接受或查找嵌入的注释。注释不属于输入,必须事先删除。嵌入式评论是电子邮件的一个特性,但在处理数据时将被忽略(参见RFC 822第3.4.3节)。

在这种情况下,调用方没有删除注释,而在最后两个示例的注释中存在'.'字符是在检查时间戳是否存在以及是否使用':''.'作为小时/分钟/秒之间的分隔符时抛出RawStrInternetToDateTime()

作为一个整体,Indy并不是为了识别(更不用说处理)标头中的嵌入注释而设计的。但是,在这种情况下,我对RawStrInternetToDateTime()做了一个小小的调整,这样注释就不会再混淆时间戳解析了(尽管在解析之前去掉注释确实是调用者的责任)。

是的,Indy有bug追踪器:

http://code.google.com/p/indyproject

(虽然是谷歌代码正在关闭,所以这个最终会消失)。

http://indy.codeplex.com

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29054900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档