【发布时间】:2021-05-11 18:41:49
【问题描述】:
我的属性文件输入方案如下所示,用于每周报告
数据滞后 - 10 天
运行日 - 星期二。
要求基于日期滞后:我必须将日历向后移动 10 天。然后我想找到星期二(可以在参数中指定任何工作日)。
我想从中获得一份每周报告。
指定此配置时,例如今天 2021 年 5 月 11 日
5 月 11 日 - 10 天 = 2021 年 5 月 1 日。在此之后,根据运行日(例如星期一),我的日历应移至 4 月 26 日。
最终结果是
(星期一)4 月 26 日至 5 月 2 日(星期日)。
val format_w = new SimpleDateFormat("yyyy-MM-dd")
val cal_ins = Calendar.getInstance
cal_ins.add(Calendar.DATE, -datalaginterval)
val datlag_date = cal_ins.getTime()
logger.info("datalag date"+datlag_date)
cal_ins.add(Calendar.DATE, -7)
val startdate = cal_ins.getTime
val start_date = format_w.format(startdate)
println("start date-"+start_date)
// calculate sunday last week (moves cal 6 days fwd)
cal_ins.add(Calendar.DATE, 6)
val enddate = cal_ins.getTime
val end_date = format_w.format(enddate)
println("End date-"+end_date)
我正在使用 Java Calendar 类。
【问题讨论】:
-
Java 的
SimpleDateFormat和Calendar都过时了。它们的使用是必需的吗? -
它是一种用法。但我想存储开始和结束日期。 @jwvh
-
不需要,我试过这种方法。@jwvh
-
如果您不必使用这些类,我建议您查看 java.time 类(例如
LocalDate)及其方法。这些更容易使用,例如10 天前类似于LocalDate.now().minus(10, ChronoUnit.DAYS)。
标签: java scala java-calendar