如果我有一天的具体日期,如何获得上一周的那一天的日期? [英] If I have a specific date of a day, how do I get the date of that day in the previous week?
问题描述
例如,如果我有一个日期,那么请参阅@Basil Bourque 变量date1,值为(dd / mm / yyy)03/07/2011,这是星期天。如何获取上一个星期日date2的日期?这将有价值(dd / mm / yyyy)26/06/2011。
有没有一个简单的方法,例如:
伪代码:
日期date1 =(03/07/2011);
日期date2 = date1.subtractNumberOfDays(7);
java.time
问题和答案使用旧的过时的日期时间类。而是使用java.time类。
LocalDate
LocalDate
类表示只有日期的值,没有时间和时区。
LocalDate localDate = LocalDate.of(2011,Month.JULY,3);
或者,将第二个参数中的整数传递给 Month
枚举。
上周
您可以从日期减去一周。
LocalDate weekPrior = localDate.minusWeeks(1);
上一个星期之前
如果您想要一周中的特定日期,请使用 TemporalAdjuster
。
在 TemporalAdjusters
课程(注意复数的'')。
LocalDate beforeTuesday = localDate.with(TemporalAdjusters.previous(DayOfWeek.TUESDAY));
SEE ANSWER FROM @Basil Bourque for most up to date answer
For example, if I have a "Date" variable "date1" with a value of (dd/mm/yyy) 03/07/2011, which is a Sunday. How do I get the "Date" of the previous Sunday "date2"? which would have the value (dd/mm/yyyy) 26/06/2011.
Is there an easy way of doing it, for example:
pseudo code:
Date date1 = (03/07/2011);
Date date2 = date1.subtractNumberOfDays(7);
java.time
The Question and Answers use old outmoded date-time classes. Instead use the java.time classes.
LocalDate
The LocalDate
class represents a date-only value without time-of-day and without time zone.
LocalDate localDate = LocalDate.of( 2011 , Month.JULY , 3 );
Alternatively, pass an integer in second argument instead of the Month
enum. Pass 1-12 for January-December.
Previous week
You can subtract a week from the date.
LocalDate weekPrior = localDate.minusWeeks( 1 );
Previous day-of-week
If you want a specific day of the week, use a TemporalAdjuster
.
Several such handy implementations provided in the TemporalAdjusters
class (note the plural 's').
LocalDate priorTuesday = localDate.with( TemporalAdjusters.previous( DayOfWeek.TUESDAY ) ) ;
这篇关于如果我有一天的具体日期,如何获得上一周的那一天的日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!