使用GWT/Java获取日期?

使用GWT/Java获取日期?,java,gwt,Java,Gwt,在GWT/Java中,我们如何获得第一天的第一个小时、分钟和秒,以及最后一天的最后一个小时、最后一分钟和本周的最后一秒 以及如何以这种方式格式化数据: 2017-01-08T04:00:00.000Z 使用Date对象的已弃用方法 使用DateTimeFormat,所以你所要做的就是对日期进行简单的数学运算 代码如下所示(假设在您的区域设置中,一周的第一天是星期一) 说明: 要想知道我们现在是星期几,我们需要一些常数。在日期时间中,只有一个常量为0(设置时间(0)) 但这是1970年1月1日星期

在GWT/Java中,我们如何获得第一天的第一个小时、分钟和秒,以及最后一天的最后一个小时、最后一分钟和本周的最后一秒

以及如何以这种方式格式化数据:

2017-01-08T04:00:00.000Z


使用Date对象的已弃用方法


使用DateTimeFormat

,所以你所要做的就是对日期进行简单的数学运算 代码如下所示(假设在您的区域设置中,一周的第一天是星期一)

说明: 要想知道我们现在是星期几,我们需要一些常数。在日期时间中,只有一个常量为0(设置时间(0)) 但这是1970年1月1日星期四01:00。所以,让我们回到70'的时间。为了做到这一点,我们将“我们现在的时间”除以“一周”的时间,即604800000毫秒。 因为我们使用的是我们期望的模,在1970年的第一周。但周四和凌晨1点仍然有问题。如何解决这个问题? 我们从当前时间中减去四天=345600000毫秒,再加上一小时3600000。现在我们在1970年的周一00:00降落! 现在我们有了可变时间infirstweek,它表示仅在1970年第一周内经过的时间。换言之,我们将所有其他周从时间中移除,我们只有一周

所以现在你们可能猜到了,我们所要做的就是从当前日期中减去timeInFirstWeek,得到一周的第一秒。为了得到一周的最后一秒,我们需要加上一周=604800000,然后减去一毫秒

使用@Knarf提到的格式,您可以使用DateTimeFormat。此外,正如代码所述,它已从GWT2.8中的弃用中临时删除

 // Temporarily remove deprecation to keep from breaking teams that don't allow
 // deprecated references.
 // @Deprecated
我认为
com.google.gwt.user.datepicker.client.CalendarUtil
类在这里会有所帮助

在获得第一天工作周后,我们可以直接设置小时、分钟和秒,以重置开始时间的日期

对于上周的时间,我们可以添加一些常量值

 // Temporarily remove deprecation to keep from breaking teams that don't allow
 // deprecated references.
 // @Deprecated