我正在尝试从网站中提取ID 41794
。但是所述数字取决于开始日期(今天的日期)。请参阅以下网站摘录
' index.cfm fuseaction = c_availabilityGrid.displayAvailabilityGrid&安培;?的startDate = 41794&安培;时间跨度= WW,2及showBeds = 1&安培; showMlos = 0&安培; showprice = 1'
我很想知道如何从今天的日期获取值41794
,以便我可以将该逻辑放入我的代码中。
java中是否有任何函数将输入作为日期并返回上面提到的数字?
非常感谢任何有关此事的帮助。
答案 0 :(得分:6)
它看起来像是自1900年1月1日以来的天数,可能是闰年或两次。
查看http://www.timeanddate.com/countdown/to?p0=198&year=1900&month=1&day=1&hour=0&min=0&sec=0
Microsoft Excel使用这样的系统。 Google" Excel序列日期"。
答案 1 :(得分:1)
answer by NPE 是正确的。使用modern date-time API*,可以确认如下:
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Month;
public class Main {
public static void main(String[] args) {
LocalDateTime ref = LocalDate.of(1900, Month.JANUARY, 1).atStartOfDay();
LocalDateTime result = ref.plus(Duration.ofDays(41794));
System.out.println(result);
}
}
输出:
2014-06-06T00:00
从 modern date-time API 中了解有关 Trail: Date Time* 的更多信息。
* 出于任何原因,如果您必须坚持使用 Java 6 或 Java 7,您可以使用 ThreeTen-Backport,它将大部分 java.time 功能向后移植到 Java 6 & 7. 如果您正在为 Android 项目工作并且您的 Android API 级别仍然不符合 Java-8,请检查 Java 8+ APIs available through desugaring 和 How to use ThreeTenABP in Android Project。