Java 如何在oracle数据库中使用时区保留datetime?

Java 如何在oracle数据库中使用时区保留datetime?,java,spring,jaxb2,Java,Spring,Jaxb2,我们正在处理不同类型的文件(xml、csv、excel),其中数据从不同时区的不同来源发送给我们。比如说印度、澳大利亚、欧洲(英国、法国等)、美国、非洲等。现在,当他们向我们发送数据时,他们会给我们他们时区的日期和时间,我们希望将这些数据保存在oracle db中。这些服务器仅位于美国东部 在db中将这些日期时间保存在其时区中的最佳实践是什么?当我们生成报告时,我们能够根据其国家/地区使用它们 我们正在使用JodaTime lib以防万一。我们使用的其他技术是用于xml解析的JAXB和用于处理文

我们正在处理不同类型的文件(xml、csv、excel),其中数据从不同时区的不同来源发送给我们。比如说印度、澳大利亚、欧洲(英国、法国等)、美国、非洲等。现在,当他们向我们发送数据时,他们会给我们他们时区的日期和时间,我们希望将这些数据保存在oracle db中。这些服务器仅位于美国东部

在db中将这些日期时间保存在其时区中的最佳实践是什么?当我们生成报告时,我们能够根据其国家/地区使用它们


我们正在使用JodaTime lib以防万一。我们使用的其他技术是用于xml解析的JAXB和用于处理文件并将数据存储在db中的基于spring的应用程序。我们使用java 7,因此不能使用JDK 8日期库。

最好的方法是将
DateTime
保留在
UTC
中。将
时区保留在另一列中(根据您的用例+05:00或国家名称等)。因此,在检索时,根据存储的时区应用偏移量

在这种情况下,你也可以考虑诸如<代码>日节约> <代码>等。

在Oracle中

选中带有时区的时间戳选项


Viswanath感谢您的回复。但我想我的问题不清楚。我们不想在需要将TZ存储在不同列和处理日期的地方进行处理。我们是否可以在单列中保留带有时区的datetime?当我们选择并生成json/文本文件报告时,它会在保留的时区中给出日期?是的,我最后添加了这一点。带有时区的时间戳。请检查:)