Indy10 GMTToLocalDateTime 问题
Indy10 GMTToLocalDateTime issue
似乎 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 个已正确解码。最后2个不是。
括号中的部分应该被忽略,因为它只是一个评论,但似乎不是。
这是 Indy 中的错误吗?
另外 - 是否有 Indy 的错误跟踪器(论坛似乎已关闭)?
GMTToLocalDateTime()
(更具体地说,RawStrInternetToDateTime()
)并不意味着接受或寻找嵌入的评论。注释不属于输入,必须事先剥离。嵌入式评论是电子邮件的一项功能,但在处理数据时会被忽略(请参阅 RFC 822 第 3.4.3 节)。
在这种情况下,调用者没有删除注释,最后两个示例的注释中 '.'
字符的存在在检查 RawStrInternetToDateTime()
时间戳的存在以及它是否使用 ':'
或 '.'
作为 hour/minutes/seconds.
之间的分隔符
作为一个整体,Indy 的设计甚至无法识别,更不用说处理 headers 中嵌入的注释了。然而,在这种情况下,我对 RawStrInternetToDateTime()
做了一个小调整,这样评论就不会再混淆时间戳解析(尽管调用者有责任在解析之前删除评论)。
是的,Indy 有错误跟踪器:
http://code.google.com/p/indyproject
(虽然Google Code is shutting down,所以这个最终会消失)。
似乎 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 个已正确解码。最后2个不是。 括号中的部分应该被忽略,因为它只是一个评论,但似乎不是。
这是 Indy 中的错误吗? 另外 - 是否有 Indy 的错误跟踪器(论坛似乎已关闭)?
GMTToLocalDateTime()
(更具体地说,RawStrInternetToDateTime()
)并不意味着接受或寻找嵌入的评论。注释不属于输入,必须事先剥离。嵌入式评论是电子邮件的一项功能,但在处理数据时会被忽略(请参阅 RFC 822 第 3.4.3 节)。
在这种情况下,调用者没有删除注释,最后两个示例的注释中 '.'
字符的存在在检查 RawStrInternetToDateTime()
时间戳的存在以及它是否使用 ':'
或 '.'
作为 hour/minutes/seconds.
作为一个整体,Indy 的设计甚至无法识别,更不用说处理 headers 中嵌入的注释了。然而,在这种情况下,我对 RawStrInternetToDateTime()
做了一个小调整,这样评论就不会再混淆时间戳解析(尽管调用者有责任在解析之前删除评论)。
是的,Indy 有错误跟踪器:
http://code.google.com/p/indyproject
(虽然Google Code is shutting down,所以这个最终会消失)。