DateToStr and Delphi XE2

3

我将一个项目从XE升级到XE2,我注意到DateToStr的工作方式与以前不同。

如果我试图将一个空日期转换为字符串,它会出现“无效浮点操作”。而在XE中不存在这种情况。

为什么会有这种差异?是否存在其他函数的类似行为?(我的意思是在类似情况下转换空值会改变行为的一些函数)


3
也许这就是您所指的内容:https://dev59.com/dmDVa4cB1Zd3GeqPcltn。 - David Heffernan
你能展示一些代码吗?在我的机器上传递一个未初始化的TDateTime只会返回1899年12月30日。 - pritaeas
@pritaeas 你的意思是传递一个值为 0.0TDateTime 吗? - David Heffernan
1
@pritaeas 可能不会,因为 0.0 的值不会引发 FP 错误。 - David Heffernan
@DavidHeffernan 是的,它与https://dev59.com/dmDVa4cB1Zd3GeqPcltn相同。有人知道这个问题在Update 4中是否已经解决了吗? - UnDiUdin
显示剩余3条评论
1个回答

1

经过调查,我意识到Embarcadero在XE2中做出的这个设计选择将影响很多旧代码。在可能的情况下,我替换了DateTimeToStr或者在尝试转换为字符串之前添加了对NULL日期的检查。

此外,DevExpress的一些组件也因此问题而出现了一些问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接