我目前正在使用Spring-Boot构建一个网关,该网关从PSQL数据库读取数据。 PSQL数据库Using rkLocalMachine As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
Using sk As RegistryKey = rkLocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion", False)
Dim nValue As Integer = CType(sk.GetValue("InstallDate"), Integer)
Dim dInstallDate As Date = DateTimeOffset.FromUnixTimeSeconds(nValue).DateTime
MessageBox.Show("InstallDate = " + dInstallDate.ToString, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Using
End Using
由运行Rails padding: 10px 14px;
的Rails Web应用程序填充。 Spring应用程序正在使用padding: 14px 18px;
和Spring Data JPA。
相关查询由Spring应用程序中的预定方法运行,该方法将当前时间与表的$horizontal-padding: 10;
$vertical-padding: 14;
.normal-padding {
padding-top: $vertical-padding;
padding-right: $horizontal-padding;
padding-bottom: $vertical-padding;
padding-left: $horizontal-padding;
}
.extra-padding {
($horizontal-padding + 2 + px), ($vertical-padding + 2 + px);
}
时间进行比较。查询如下:
v11.3
如果我从此查询中检索到5.1.3
并从Java 8
获取时间,则它的类型为updated_at
。使用@Query("SELECT d from SimulatedDeviceEntity d WHERE d.updatedAt > :currentTime")
List<SimulatedDeviceEntity> findByLastUpdated(@Param("currentTime") Timestamp currentTime);
显示时,我得到SimulatedDeviceEntity
的设备是在本地时间getUpdatedAt
上更新的。
我已经尝试过各种有关如何在UTC中生成时间戳的答案,包括here,其中我创建时间戳的代码是
java.sql.Timestamp
无论我尝试什么,对其中任何一个调用toString()
都会在我的本地时间生成时间戳,该时间比UTC晚4个小时。我已经明白这是故意的,但是在从Rails应用程序检索的时间戳上调用2019-06-26 17:24:20.034923
时,即使它们以UTC显示。
鉴于13:24
应该显示本地时间的时间戳记,因此它在我的世界标准时间LocalDateTime ldt = LocalDateTime.now();
ZonedDateTime zdt = ZonedDateTime.of(ldt, ZoneId.of("GMT"));
Timestamp currentTime = Timestamp.valueOf(zdt.toLocalDateTime());
时间显示的事实使我相信这里还有其他事情。
答案 0 :(得分:0)
实际上,当您比较两个时间戳时,不需要将它们转换为相同的时区。将它们作为绝对时间进行比较足够聪明。它所做的是将任何Timestamp
转换为Long
(自1.1.1970 00:00 UTC开始经过的毫秒数)的值,然后进行比较。因此,您可能不需要转换时间。它应该可以正常工作。