当前位置: 首页 > 知识库问答 >
问题:

将UTC时间戳插入MySQL-夏令时区

贺季
2023-03-14

我有一个Java客户机,它正在以UTC格式在MySQL DB中插入(通过CSV和'Load DATA Infile')时间戳(type TIMESTAMP)。我的服务器的时区是“America/New_York”,我需要保留夏令时信息。11月5日凌晨2点是美国东部时间转换到东部时间的时候,时钟拨回一个小时到凌晨1点。例如,11月5日凌晨1:30,发生两次;EDT和EST各一次。

我该如何让服务器区分这两者呢?例如,如果我想插入“2017-11-05 01:30:00”EDT,有没有办法告诉MySQL在我插入值时区分“2017-11-05 01:30:00”EDT(时间更改前)和“2017-11-05 01:30:00”EST(时间更改后)之间的区别?我的Java应用程序有这两个时间戳的时区信息(如果这很重要的话)。

我想保持服务器的全局时区为'America/New_York',因为用户访问此数据并希望它显示在他们的本地时间。

我想到的解决方案是从Java客户端将连接的时区设置为UTC,在UTC中插入值,然后重新设置连接的时区,但我想知道是否有更好的、更“标准”的解决方案。

共有1个答案

孟选
2023-03-14

在纽约或东部时区使用jodaTime api http://joda-time.sourceforge.net/timezones.html为什么这个Joda偏移量不能获得夏令时

 类似资料:
  • 我有带有时间戳(UTC时间)的json日志。我将键和值映射到Cassandra表键并插入记录。但是,Cassandra通过从时间戳中减去5小时,再次将已有的UTC时间戳转换为UTC。这里的时区是(GMT+5)。 现在时间已经是UTC时间,并且仍然插入5小时前的时间戳。 我如何解决这个问题?

  • 看来我星期一早上有个案子!!! 正如你们所能看到的,我的本地机器位于东部时区,日光节约已经生效。这可以从下面的“日期”命令中看到。 然后我使用php生成了一个unix时间戳。它应该给出您当前的时间并在1970年1月1日的UTC 0:0:0将其转换为Unix纪元。 我的mysql会话被设置为UTC,我想象1460992469表示为mktime转换为UTC。 问题是转换回est不承认夏令时。谁能帮我指

  • 我正在尝试使用Joda在一个简单的Java程序中获取UTC时间戳: 程序输出如下: 毫秒值是正确的UTC时间(即用时区确认)第二个值是时区。 我需要的是UTC值不变为(即独立于TZ),用于数据库写入。这可能吗? 我知道是本地日期(GMT-4),是UTC(GMT-0)。日期的输出值如下: 我尝试了所有组合,试图将的UTC值作为java.sql.TimeStamp: 用于测试的打印输出: 第一行是正确

  • 夏令时间 选择[标准]或[夏令时间]。

  • 我得到一个格式为yyyy-MM-dd HH: mm的字符串,它代表UTC中的日期和时间。下一步是将其放入日历(带时间区UTC)。 此外,还需要创建一个单独的日历,将UTC转换为“欧洲/伦敦”时区(GMT/BST)。 之后,我需要能够检测“欧洲/伦敦”日历是否有DST(日光节约补偿)。 下面的代码将告诉你我已经走了多远,它在一台默认系统时区为GMT的英国计算机上运行正常。但是,当我在一台时区为UTC

  • 但是,当我在数据库中查找时,存储的时间是由数据库时区与UTC的差值得出的。例如,当我的数据库在UTC+1运行时,运行上面的代码保存“08:00z”,数据库中的时间戳显示为09:00。 datetime的getMillis方法说“从1970-01-01t00:00:00z的Java纪元获取datetime瞬间的毫秒。”MySql的时间戳显示:“MySql将时间戳值从当前时区转换为UTC以存储,然后从