gpt4 book ai didi

java - 如何获取每天随着天数递增的输出

转载 作者:行者123 更新时间:2023-11-30 10:01:33 30 4
gpt4 key购买 nike

我做了这个 Java 组件,每天凌晨 1:00 在数据库中插入 2 行。我知道 date.plusDays(1) 函数可以增加日期,但我不知道每次插入时如何使用它来增加日期。

@Component
public class ScheduledPlans {

private static final SimpleDateFormat dateFormat = new
SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");


private final Logger log =
LoggerFactory.getLogger(ScheduledPlans.class);


@Autowired
PlanServiceImpl planDao;

@Scheduled(cron = "0 0 1 * * *") //insert every day at 1:00 AM

public void reportCurrentTime() throws Exception {
log.error("The time is now {}", dateFormat.format(new Date()));
//show the date and the time now

//variable declaration
BigInteger planList;
BigInteger planList2;
BigInteger Nbpers = new BigInteger("15");
String color = "red";
String nom = "groupeTest";

LocalDateTime dDate = LocalDateTime.parse("2019-08-03T04:00:00");
LocalDateTime fDate = LocalDateTime.parse("2019-08-03T11:30:00");

String color2 = "blue";
String nom2 = "groupeTest2";

LocalDateTime dDate2 = LocalDateTime.parse("2019-08-03T11:30:00");
LocalDateTime fDate2 = LocalDateTime.parse("2019-08-03T19:00:00");


//insert into the database
planList = planDao.save(new Plan(color, dDate, fDate, Nbpers, nom, type));

planList2 = planDao.save(new

Plan(color2, dDate2, fDate2, Nbpers, nom2, type2));
List < Plan > list = planDao.getPlan();


log.error("############Test############");
//test date incrementation**
log.error("dDate incremented 1 day : " +
dDate.plusDays(1));
}
}

我想要实现的是每天凌晨 1:00 获取输出(完成),但随着天数的增加。

最佳答案

您正在将可怕的 java.sql.Datejava.util.DateSimpleDateFormat 类(现在是旧版)与它们的替代品混合在一起,java.time 包。不要那样做。完全避免遗留日期时间类。

如果您正在尝试跟踪时间轴上的实际时刻,请使用 Instant

Instant instant = Instant.now() ;  // Capture the current moment in UTC.

您的 JDBC 驱动程序可能只支持必需的 OffsetDateTime 类,而不支持可选的 Instant

OffsetDateTime odt = OffsetDateTime.now( ZoneOffset.UTC ) ;  // Capture the current moment in UTC.

如果您尝试在同一天的某些时间记录某种约会,请将您的 LocalDateTime 分成单独的部分:LocalDate本地时间

LocalDate ld = odt.toLocalDate() ;
LocalTime lt1 = LocalTime.of( 4 , 0 ) ;
LocalTime lt2 = LocalTime.of( 11, 30 ) ;

LocalDateTime ldt1 = LocalDateTime.of( ld , lt1 ) ;
LocalDateTime ldt2 = LocalDateTime.of( ld , lt2 ) ;

如果您指的是后一天,请通过调用 plus...minus... 方法来计算日期。

LocalDate dayOfter = odt.toLocalDate().plusDays( 1 ) ;

注意上面的代码没有使用字符串。我们没有费力处理字符串操作,而是使用适当的数据类型来忠实地表示我们的意图。

请注意,如果这些日期和时间值旨在跟踪特定时刻、时间轴上的特定点,那么 LocalDateTime 正是 错误正在使用的类。您应该使用带有 ZoneIdZonedDateTime。但这是一个完全不同的话题,并且已经在 Stack Overflow 上多次讨论过。所以我会保留它。搜索以了解更多信息。

Table of date-time types in Java, both modern and legacy.

您的问题正文似乎与标题完全无关。所以我无法在另一部分帮助你,除了提到这是 SQL 数据库,我们通过使用带有 WHERE 子句的 UPDATE 语句一次更新许多行。参见 tutorial .

关于java - 如何获取每天随着天数递增的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57380194/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com