首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间变化会影响Java的日期比较功能吗?

问时间变化会影响Java的日期比较功能吗?
EN

Stack Overflow用户
提问于 2013-11-12 05:47:48
回答 2查看 152关注 0票数 1

我们正在尝试使用java date compare将存储在mySQL中的日期与从Gmail消息原文中读取的纯文本日期字段进行比较。

第一次通过时,读取Gmail消息纯文本日期并将其存储在mySQL数据库字段“date_sent”类型的时间戳中。下次检查该消息时,它将获得消息纯文本日期,并使用Java Date比较函数将其与存储的date_sent值进行比较。

这种比较通常是有效的。但是,如果要比较的消息日期的日期和时间在更改时间的某一天的凌晨1点内(夏令时转换为标准),则比较失败。

有没有人经历过这种情况?你是怎么修好它的?

EN

回答 2

Stack Overflow用户

发布于 2013-11-12 05:58:59

看起来你遇到了一场艰苦的战斗。如果在夏令时结束的那一天收到一条消息,日期是凌晨1:30,我认为你无法判断这是第一次出现在凌晨1:30(时钟倒退之前)还是第二次出现。

大概,你永远不会在夏令时开始当天的凌晨1:30收到一条消息,因为这个时间实际上并不存在。

因此,如果您通过将文本字段转换为日期并将其存储来执行此操作,则始终存在如何比较此类日期的问题。如果你选择了错误的凌晨1:30,你的比较有时可能是错误的,我不认为你能做太多的事情,如果你希望你的时区是正确的,无论是夏令时还是标准时间。

可以考虑做的一件事是将时间戳存储为文本,而不是日期,这样转换就永远不会发生。如果您使用像yyyy-MM-dd HH:mm:ss这样的格式,那么您应该能够进行文本比较而不是日期比较,并获得正确的结果。

票数 2
EN

Stack Overflow用户

发布于 2013-11-12 05:52:26

我从来没有经历过这种情况,因为我从来没有做过。我认为您需要做的是获取/了解文本日期的时区,将其转换为date对象(使用该时区),然后以这种方式比较日期。

您说您正在使用Date compare方法,但这意味着它需要一个Date作为输入。那么你已经在转换了吗?请给我们看一下代码。您传入的是时区吗?

Also, this question has very useful information that you can use.

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

https://stackoverflow.com/questions/19916614

复制
相关文章

相似问题

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