数字“41794”与今日(即04/06/2014)之间的关系是什么?

时间:2014-06-04 05:54:34

标签: java date time

我正在尝试从网站中提取ID 41794。但是所述数字取决于开始日期(今天的日期)。请参阅以下网站摘录

  

' index.cfm fuseaction = c_availabilityGrid.displayAvailabilityGrid&安培;?的startDate = 41794&安培;时间跨度= WW,2及showBeds = 1&安培; showMlos = 0&安培; showprice = 1'

我很想知道如何从今天的日期获取值41794,以便我可以将该逻辑放入我的代码中。

java中是否有任何函数将输入作为日期并返回上面提到的数字?

非常感谢任何有关此事的帮助。

2 个答案:

答案 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 desugaringHow to use ThreeTenABP in Android Project