- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在解决一个问题。我越研究和调试它,我越觉得我可能不完全理解它。
我的时区是东部时间 (UTC -5)。该时间介于 21:00 和 21:59 之间。日期为 2014 年 3 月 8 日。在该时区,DST 发生在 2014 年 3 月 9 日,此时 1:59:59 变为 3:00:00。
我想使用 Hibernate 将当前日期时间作为 Timestamp
保存在数据库中。为此,我使用 Jadira 的 PersistentDateTime 类。我保留 UTC 值,因此 Jadira 将当前日期时间(假设 2014 年 3 月 8 日 21:30 ET)更改为 2014 年 3 月 9 日 02:30 UTC,这是正确的。然后,它根据 UTC 日期时间的字符串表示形式构造一个 Timestamp
,该 Timestamp
为 09-MAR-14 03.30.00.000000000 AM
。当我返回 ET 表示时,我得到 2014 年 3 月 8 日 22:30 ET。
据我了解,这是错误的 - 我应该得到相同的日期时间。
在我看来,在创建时间戳
时,会应用DST,尽管不应该如此。我正在考虑一个细节:ET 是 UTC -5。 21:00 正是夏令时发生在 ET 减 5 小时内的时间。所以 21:30 ET 是 2:30 UTC。 3 月 8 日美国东部时间 2:30 无效。也许这与奇怪的行为有关。
我正在使用 jadira 1.9(usertype.joda-time-1.9.jar 和 usertype.spi-1.9.jar)和 Hibernate 3.6.0。我的模型是:
@Entity
@Table(name = RUN_STATUS_DATA_DB_TABLE_NAME)
@Access(AccessType.PROPERTY)
public class StatusData implements Identifiable, Serializable {
...
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
@Column(name = RUN_STATUS_COLUMN_POST_EXECUTION_END_TIME)
public DateTime getPostExecutionEndTime() {
return postExecutionEndTime;
}
public void setPostExecutionEndTime(DateTime postExecutionEndTime) {
this.postExecutionEndTime = postExecutionEndTime;
}
}
创建意外时间戳的 Jadira 代码位于 this class ,第 72 行
有想过为什么会发生这种情况吗?谢谢
最佳答案
自您使用的 Usertype 版本以来,已有许多增强功能和修复。
我已将尽可能多的功能向后移植到 Hibernate 3.6 和 Java 5。您可以通过使用模块 usertype.core-hibernate36 来使用此向后移植。
目前,您需要从源代码构建它,直到下一个版本。从 https://github.com/JadiraOrg/jadira 获取来源
另外,请查看 http://jadira.sourceforge.net/usertype-userguide.html 中的文档。
如果您遇到任何问题,请告诉我。
免责声明:我维护 Jadira。
关于java - 在 DST 期间创建时间戳(某种程度上)的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22375165/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!