我有一个包含DATETIME列的MySQL表,my_date。
该列在我的域对象中定义为< code>java.util.Date类型,并注释为< code>Temporal:
@Entity()
@Table(name="Thing")
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class Thing {
...
@Column(name="my_date", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date myDate;
...
}
数据库中的当前my_date
列值为 2022-07-17 12:34:56
,每个 MySQL 工作台。
我有一个非常简单的 REST endpoint,使用 Spring JPA 创建,出于某种原因将该值拉取为:
...
"myDate": "2022-07-17T19:34:56.000+00:00"
...
为什么时间部分返回的值比数据库中显示的值晚 7 小时?
更新:我实际上正在使用MariaDB(10.7.3-MariaDB)。不确定这是否与这里相关,但我刚刚意识到,所以提到它以防万一可能是时间部分偏移的原因。
我认为这是时区问题,你可以添加如下代码到Mysql或你的应用程序的容器Dockerfile
RUN rm /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
根据https://javabydeveloper.com/temporal/的说法
Java8个日期/时间类和SQL类型之间的映射是隐式的,不需要指定@Temporal注释。
尝试删除@Temporal注释
java.sql.Timestamp时区特定吗?
https://stackoverflow.com/a/14070771/16702058
例如:您的本地时区是GMT 2。您存储“2012-12-25 10:00:00 UTC”。数据库中存储的实际值是“2012-12-25 12:00:00”。您再次检索它:您再次将其取回为“2012-12-25 10:00:00 UTC”(但前提是您使用getTimestamp(…)检索它),但当另一个应用程序在GMT 0时区访问数据库时,它将检索时间戳为“2012-12-25 12:00:00 UTC”。
问题内容: 我有一个包含表的MySQL数据库。 但是,我找不到在Java中将其作为Java中某种对象返回的方法。 我可以打电话给它,它会返回,但这并不好,因为没有办法比较字符串上的日期等。 我也可以打电话,但这根本不返回时间。 问题答案: 您需要使用Thomas的注释中建议的getTime()或getTimestamp()方法。举个例子… 说出要查询的表格,如下所示: 您可以这样做: 如果要使用J
我想将日期字符串从“2016-09-23T09:14:52.555000000”格式解析为“23-SEP-2016”格式。 这是我的密码: 问题是如果我用这句台词 SimpleDateFormat oracleDateFormat=新的SimpleDateFormat(“yyyy-MM-dd'T'kk:MM:ss.S”); 输出为(不正确的日期值): 而如果用这条线 oracleDateForma
问题内容: 表格示例: 所需的输出(不是确切的格式或上市顺序),每台计算机上每个应用程序的最新安装: 我的SQL语句: 这给了我: 并不是 如我所料。 如果我 仅 选择MAX(date),而没有其他选择,则MAX(date)有效。但是,那时我没有任何数据可以使用(仅是最新日期)。 我不是SQL忍者,所以我很快就会因此而挠头。 问题答案: 尝试这样: 内部查询是为您获取每对计算机和应用程序的max(
我有一个剑道网格,它有一个datetime列,当从数据库中获取日期时,我们得到了正确的日期,但在显示日期时,日期发生了变化。例如:DB日期为2017年6月7日,但在网站上显示时,考虑到年月日,日期改为2017年6月6日。谁能帮我一下吗。我们的数据库和网站均位于纽约地区。
问题内容: 假设我有一个时间戳值的DataFrame : 我想创建一个新列。我可以通过编写一个简短的函数并使用它来迭代地创建它来创建它: 然后,我将看到以下结果: 什么我 想 实现的是这样一些较短的转变(我知道是错误的,但在精神得到): 显然,该列是类型的,因此没有这些属性,但是似乎有一种使用矩阵运算的简单方法。 有更直接的方法吗? 问题答案: 假设时间戳是数据帧的索引,则可以执行以下操作: 如果
鉴于下面的代码片段,为什么最后四个输出周期是相同的?我希望这些行的天数部分是4,3,2,1,而不是4,4,4,4。这是一个错误还是我遗漏了一些明显的东西?(天晚了,我很累,所以很可能是后者。)我用的是野田佳彦时间1.2.0。
所以我当前处于“America/Los_Angeles”时区(PDT)中,但是当我创建一个新的moment对象并通过moment tz将其时区设置为我所在的时区('America/Los_Angeles'),如下所示: 错误的时间被返回。具体来说就是提前8个小时。所有其他时区也会出现这种情况。 我是不是从根本上误解了这是怎么工作的? 谢谢你的帮助!
问题内容: 我最近接手了一个十年前创建的旧项目。它使用MySQL 5.1。 除其他外,我需要将默认字符集从latin1更改为utf8。 例如,我有这样的表: 我设置了自己的Mac来进行此工作。不用考虑太多,我运行了“ brew install mysql”,它安装了MySQL 5.7。所以我有一些版本冲突。 我下载了此数据库的副本并将其导入。 如果我尝试运行这样的查询: 我收到此错误: 我以为可以