特别是在 SQL 服务器(我假设其他)中,有一种 datetimeoffset 类型可以存储时间戳,其偏移量other 不同于 GMT。 (看起来像这样“1998-01-01 15:00:00.0000000 +06:00”)
但是尝试将日历持久保存到数据库会自动将其转换为 GMT(尽管我不知道是谁在做 JPA、Hibernate 或 sqljdbc)所以它看起来像这样“1998-01-01 9:00:00.0000000 +00:00"
有什么方法可以防止某些属性出现这种情况吗?
最佳答案
尽管可能还有其他使用 SQL 数据库的解决方案,但我始终遵循以下方法:
在数据库或文件中,我总是以 UTC 格式存储时间,无一异常(exception)。 如果必须保留时区,例如对于 UI,那么我将 UTC 偏移量存储在一个额外的字段中。
这样我就有了正确的时间,如果需要的话,时区也会被保留。
关于java - 如何在 JPA 中保留原始时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591807/