English 中文(简体)
计算上星期前一周1周,从今天计算到上星期。
原标题:Calculate 1 week before the last Sunday and from today to last Sunday

我在我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的我的.。 现在我想做的是,从上星期天到星期天之前(一周工作),具体用户每天都在找回。 从今天到上周(现周)每天收回其他选择。 一些雇员不从事日常工作。

我不知道我如何能够在贾瓦 Java这样做,也不知道是否有专门的我的后勤职能。

最佳回答

在 Java,你可以很好地利用日历级,以找到上一个星期:

Calendar c = Calendar;
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
Date lastSunday = c.getTime();

之后,你可以调用1台WEK_OF_MONTH,在星期日之前找到:

c.add(Calendar.WEEK_OF_MONTH, -1);
Date sundayBeforeThat = c.getTime();

问题回答

tl;dr

LocalDate.now( ZoneId.of( "Pacific/Auckland" ) )
         .with( TemporalAdjusters.previous( DayOfWeek.SUNDAY ) ) 

java.time

The modern approach uses the java.time classes.

请注意:TIMESTAMP在MySQL中的数据类型位于UTC的时间区。

相比之下,如果某一时间区至关重要,则你希望具体注明具体日期。 时间区对于确定日期至关重要。 无论何时,这个日期都因区而异。 例如,在 Paris France 是一个新日,而Montréal 魁北克

<<https://en.wikipedia.org/wiki/List_of_tz_zones_by_name”rel=“nofollow noreferer”>propertime zones name,其格式为continent/region,例如https://en.wikipedia.org/wiki/America/Montreal” rel=nofollow norecerer">。 从未使用过3-4字母缩略语,例如ESTIST,因为它们是not真正的时区,不是标准化的,甚至不是独一无二的。

ZoneId z = ZoneId.of( "America/Montreal" );
LocalDate today = LocalDate.now( z );

如果是星期日,请上周休息。 使用<代码>TemporalAdjuster,载于。 TemporalAdjusters (note plural) category. 缩略语 object。

LocalDate previousSunday = today.with( TemporalAdjusters.previous( DayOfWeek.SUNDAY ) ) ;

星期日再回来。

LocalDate startingSunday = previousSunday.minusWeeks( 1 ) ;

我们需要确切的时间,而不是整个日期。 走到今天的第一刻。 不要假设这意味着每天00:00:00。 日光节省时间(DST)等异常现象意味着,这一天可能在0:00时开始。 不要 j。

ZonedDateTime zdtStart = startingSunday.atStartOfDay( z ) ;

接下来,我们需要结束时间。 实际上,不是结束时间。 确定该周第二次结束的时间是trick的。 日常工作的共同做法是采用半开放式办法确定一个时间。 在半开放式中,起步为 Inclusive/em>,而起止步为elus/em>。 这意味着,我们要在星期日的第一刻开始,直到,但不包括下周日的第一个时间。

请注意,由于指挥已经关闭,你无法使用<条码>BETWEEN,这意味着开始和结束指挥都是包容性的。

ZonedDateTime zdtStop = previousSunday.atStartOfDay( z ) ;

MySQL的询问将在万国邮联进行。 因此,请从<代码>中提取<代码>Instant的物体,因为按照定义,这些物体始终在万国邮联内。

Instant start = zdtStart.toInstant() ;
Instant stop = zdtStop.toInstant() ;

如果您的JDBC的司机支持JDBC 4.2,并且以后,你可以通过PreparedStatement:setObjectResultSet:getObject

这份法典未经测试,但应指明你的方向。

String sql = "SELECT * from tbl_ WHERE col_ >= ? AND col_ < ? ; " ;
PreparedStatement pstmt = conn.prepareStatement( sql ) ;
pstmt.setObject( 1 , start ) ;
pstmt.setObject( 2 , stop ) ; 
ResultSet rs = pstmt.executeQuery() ;
…
    Instant instant = rs.getObject( … , Instant.class ) ;

About java.time

legacyjava.util。 日期<<>,rel=“nofollow noretinger”>Calendar , &rel=“nofollow noreting”code

Joda-time Project,现载于,为向。 班级。

更多学习,见 rel=“nofollow noreferer”>Oracle Tutorial 。 此外,还寻找Stack Overflow的许多实例和解释。 具体内容是JSR 310

获取ava。 时间段

>ThreeTen-Extra 项目延长java.time 额外课程。 该项目是今后可能增加 j的一个证明。 时间。 http://www. 33ten.org/ iii/extra/apidocs/org/ 3ten/extra/Interval.html





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...