java - 时间变化会影响 Java 日期比较功能吗?

标签 java mysql datetime datetime-format date-comparison

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

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

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

有人遇到过吗?你是如何修复它的?

最佳答案

看来您正在进行一场艰苦的战斗。如果一条消息在夏令时结束的日期凌晨 1:30 到达,我认为您无法判断它是第一次出现在凌晨 1:30(时钟倒转之前)还是第二次。

据推测,您永远不会收到夏令时开始当天凌晨 1:30 的消息,因为这个时间实际上并不存在。

因此,如果您通过将文本字段转换为日期并存储它来执行此操作,您将始终遇到如何比较此类日期的问题。如果您选择错误的凌晨 1:30,您的比较有时可能是错误的,如果您希望夏令时和标准时间的时区正确,我认为您无能为力。

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

关于java - 时间变化会影响 Java 日期比较功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19916614/

相关文章:

java - 在 dataweave 2.0 中添加两个小时和分钟

Java:在 Java 程序中解释 UTF-8

mysql - 包含多个变量的频率的表

python - 将数据框从长数据框转换为宽数据框,同时保留值的顺序(dtype datetime)

php - mysql php 日期时间查询语法

javascript - 伊斯兰(回历)日历的 Javascript Intl.DateTimeFormat() 输出在 'islamic' 和 'ar-SA' 之间存在差异

java - 如何允许用户在 Java 中创建他们选择的新 .txt 文件

java - 如果 Cipher 编码失败,重试也会失败

java - 将远程 Mysql 连接到 Netbeans

mysql - 如果保存消息的表已满,我该怎么办?