从 php 到 Java - mktime 和 date
From php to Java - mktime and date
我正在尝试将 php 脚本更改为 java 但我卡在了这两行代码中。有谁知道等效代码是什么?
$Menarche = mktime(2, 0, 0, $Month, $Dday, $Year);
$DueDate = $Menarche + 86400*(280 + ($MCL - 28));
您只需根据数据创建 LocalDateTime
。这是特定日期和时间的表示,但没有时区。
final int month = 11;
final int day = 5;
final int year = 1605;
final LocalDateTime localDateTime = LocalDateTime.of(year, month, day, 2, 0, 0);
现在要打印它,我们可以使用 DateTimeFormatter
:
final DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
System.out.printf("A date to remember: %s%n", localDateTime.format(formatter));
输出:
A date to remember: 1605-11-05T02:00:00
要用 LocalDateTime
进行算术运算,我们可以简单地使用许多 plusXXX
方法中的一种,例如使用月份:
final LocalDateTime dueDate = localDateTime.plusMonths(9);
System.out.printf("Nine months later: %s%n", dueDate.format(formatter));
输出:
A date to remember: 1606-08-05T02:00:00
或者,如果我们有精确的持续时间 - 我们不能使用月份,因为它们是 "estimated" - 你可以创建一个 Duration
:
final Duration gestation = Duration.ofDays(280);
final LocalDateTime dueDate = localDateTime.plus(gestation);
我正在尝试将 php 脚本更改为 java 但我卡在了这两行代码中。有谁知道等效代码是什么?
$Menarche = mktime(2, 0, 0, $Month, $Dday, $Year);
$DueDate = $Menarche + 86400*(280 + ($MCL - 28));
您只需根据数据创建 LocalDateTime
。这是特定日期和时间的表示,但没有时区。
final int month = 11;
final int day = 5;
final int year = 1605;
final LocalDateTime localDateTime = LocalDateTime.of(year, month, day, 2, 0, 0);
现在要打印它,我们可以使用 DateTimeFormatter
:
final DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
System.out.printf("A date to remember: %s%n", localDateTime.format(formatter));
输出:
A date to remember: 1605-11-05T02:00:00
要用 LocalDateTime
进行算术运算,我们可以简单地使用许多 plusXXX
方法中的一种,例如使用月份:
final LocalDateTime dueDate = localDateTime.plusMonths(9);
System.out.printf("Nine months later: %s%n", dueDate.format(formatter));
输出:
A date to remember: 1606-08-05T02:00:00
或者,如果我们有精确的持续时间 - 我们不能使用月份,因为它们是 "estimated" - 你可以创建一个 Duration
:
final Duration gestation = Duration.ofDays(280);
final LocalDateTime dueDate = localDateTime.plus(gestation);