我试图将值作为开始日期和结束日期传递给函数。现在我硬编码这些值,其中开始日期是20210401,结束日期是20210419。01是日期,04是月份,2021是年份。
我想在运行时传递这些,其中开始日期是当前月份的开始日期,结束日期应该是当前月份的当前日期前2天。例如,如果当前月份是10月,而今天的日期是2021年10月15日。那么开始日期应该是20211001,结束日期应该是20211013。请推荐任何java代码。这真的很有帮助。
我试图将值作为开始日期和结束日期传递给函数。现在我硬编码这些值,其中开始日期是20210401,结束日期是20210419。01是日期,04是月份,2021是年份。
我想在运行时传递这些,其中开始日期是当前月份的开始日期,结束日期应该是当前月份的当前日期前2天。例如,如果当前月份是10月,而今天的日期是2021年10月15日。那么开始日期应该是20211001,结束日期应该是20211013。请推荐任何java代码。这真的很有帮助。
3条答案
按热度按时间mgdq6dx11#
我想在运行时传递这些,其中开始日期是当前月份的开始日期,结束日期应该是当前月份的当前日期前2天。
我建议您使用现代日期时间api进行此操作,如下所示:
输出:
注意:如果应用程序应该在与应用程序的jvm不同的时区中使用,请替换
LocalDate
与ZonedDateTime
初始化today
与ZonedDateTime.now(ZoneId zone)
通过适用的时区,例如。ZoneId.of("Asia/Kolkata")
.从trail:date-time了解有关现代日期时间api的更多信息。
使用传统的日期时间api怎么样?
遗留日期时间api(
java.util
日期时间类型及其格式api,SimpleDateFormat
)过时且容易出错。建议完全停止使用并切换到java.time
,现代日期时间api*。ryoqjall2#
下面是一段代码片段,可能会有所帮助。这里我以本地系统时间作为
endDate
回去两天前拿到你的startDate
.我确定您是要使用当前的系统日期,还是要手动将不同的日期传递到函数中。
如果要在运行时将日期(例如,2021年1月10日)手动传递到函数中,可以使用以下语句:
然后想办法从中减去2天
endDate
变量来获取startDate
变量。ecbunoof3#
下面是一个使用
LocalDate
计算预期日期。请注意,如果当前日期是本月的1号或2号,则代码将使用当前日期作为结束日期,而不是进行任何计算。如果你认为合适,请随意更改。