如何在给定时区的最后/上周六获得日期

时间:2012-02-14 23:02:39

标签: java

我想在上周六计算日期。对于例如如果我今天运行程序,它应该给我2月11日的日期。

时区是否会对此计算产生影响,同一天在不同时区的不同日期?

2 个答案:

答案 0 :(得分:4)

使用joda-time(建议您使用):

DateTime now = new DateTime(DateTimeZone.forID("UTC"));
DateTime saturday = now.withDayOfWeek(6);
if (saturday.isAfter(now)) {
    saturday = saturday .minusWeeks(1);
}
System.out.println(saturday);

答案 1 :(得分:2)

只要您参考同一个星期六,它就会在世界任何地方的同一天 “最后一个星期六”这个词可能含糊不清:

如果我在日本和周六凌晨1点(上午),那么对于我来说,“上周六”就在一小时前开始。
对于英格兰的某个人来说,它仍然是星期五,他的“上周六”大约一周前开始(并结束)。

在这种情况下,我们可能会在不同的日期提到“上周六”,但当然我们实际上是指不同的日子。