Java-存储GMT时间 我的服务器有GMT+7,所以如果我移动到另一个服务器有另一个GMT时区,数据库中存储的所有日期都将不正确 是的,Q1是正确的,我将在GMT+0时区中存储日期,并在每个成员选择的自定义GMT时区中显示它如何 如何使用java中的GMT+0获取日期

Java-存储GMT时间 我的服务器有GMT+7,所以如果我移动到另一个服务器有另一个GMT时区,数据库中存储的所有日期都将不正确 是的,Q1是正确的,我将在GMT+0时区中存储日期,并在每个成员选择的自定义GMT时区中显示它如何 如何使用java中的GMT+0获取日期,java,timezone,gmt,Java,Timezone,Gmt,默认情况下,当您在当前时区中获取java中的日期时,您可以使用该类获取系统时间运行的时区。大多数数据库都支持使用时区存储日期,这可能是正确的方法,但确切的格式取决于您使用的数据库 1)引用javadocs,Java毫秒时间戳是 当前时间与UTC 1970年1月1日午夜之间的差值(以毫秒为单位) 因此,由于时间戳是UTC/GMT,如果将其存储在数据库中,则无论服务器的时区如何,该日期都是正确的 2) 根据时区设置显示时间戳的格式是正确的方法 3) 创建一个新的java.util.Date实例并调用

默认情况下,当您在当前时区中获取java中的日期时,您可以使用该类获取系统时间运行的时区。大多数数据库都支持使用时区存储日期,这可能是正确的方法,但确切的格式取决于您使用的数据库

1)引用javadocs,Java毫秒时间戳是

当前时间与UTC 1970年1月1日午夜之间的差值(以毫秒为单位)

因此,由于时间戳是UTC/GMT,如果将其存储在数据库中,则无论服务器的时区如何,该日期都是正确的

2) 根据时区设置显示时间戳的格式是正确的方法


3) 创建一个新的java.util.Date实例并调用getTime()将获得java中GMT+0的时间戳。

要添加到mark的点,一旦有了java.util.Date,就可以将其“转换”到任何时区(由用户选择)。下面是Groovy中的一个代码示例(将在Java中使用少量mods):


我建议您仅使用Date作为“持有者”,并建议您使用日历实例。要获取GMT时区的日历,请使用以下命令:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+00"))
Date date = cal.getTime();
当你处理时间和日期时,日历会给你带来很多好处。例如,在此基础上增加一小时很简单:

cal.add(Calendar.HOUR, 1);
最后,当您需要约会时,只需使用以下选项:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+00"))
Date date = cal.getTime();

对于q3,考虑使用ZONDATEDTIME类。 有使用现代日期时间API的答案。