Java 将日期转换为长(手动)

Java 将日期转换为长(手动),java,date,time,Java,Date,Time,我想将日期转换为长值(即毫秒) 我有一个像这样的约会 2/11/2014 我想用long(手动)计算日期 我试过的 (2014 - 1970 ) * 31449600000 + 11 * 2592000000 + 2 * 604800000 这相当于1413504000000 但是告诉我,1413504000000是 Date (America/New_York) Thursday, October 16, 2014 8:00:00 PM EDT Date (GMT) Friday, Oc

我想将日期转换为长值(即毫秒)

我有一个像这样的约会

2/11/2014
我想用long(手动)计算日期

我试过的

(2014 - 1970 ) * 31449600000 + 11 * 2592000000 + 2 * 604800000
这相当于1413504000000

但是告诉我,
1413504000000

Date (America/New_York) Thursday, October 16, 2014 8:00:00 PM EDT
Date (GMT)  Friday, October 17, 2014 12:00:00 AM GMT
Date (short/short format)   10/16/14 8:00 PM
我错在哪里


同样,我想手动执行此操作,而不是使用java代码。

不要重新发明轮子。时间/日期计算是出了名的困难,即使是标准的java库也不正确。使用:


如果你确定你可以手动完成(嗯,为什么?-看起来像是家庭作业),打开源代码并复制它。你不会发明得更好的。或者更好地打开,阅读,然后尝试在编辑器中编写它。

为什么要手动将日期转换为long或long转换为date,编写一个简单的java代码,在约定后为您提供正确的结果,我正在使用简单的程序,并根据我的用户进行转换

public class test {

    public static void main(String[] args) {

            Date dt=new Date(Long.valueOf(1390973400983L));
            System.out.println(dt.toString());

            Calendar cal=Calendar.getInstance();
            cal.set(2014, Calendar.JANUARY, 29, 11, 00, 0);

            System.out.println(cal.getTimeInMillis());
            System.out.println();

    }
}


欲了解更多信息,请访问

您没有考虑闰年。@Keppil很好。你有什么想法吗?我怎样才能改变我的‘公式’?当我们讨论闰年的问题时,你也不能假设每四年都是闰年。2000是闰年,是2100, 2200,而2300不是,即使是%4闰年,那是你没有想到的!有些月是30天,有些月是30天,你可以在这些年中循环检查。除可被100整除的年份外,所有可被4整除的年份均为闰年,但包括可被400整除的年份。因此,在您的范围内,每4年应该是闰年,除非您使用的日期晚于2099年。
public class test {

    public static void main(String[] args) {

            Date dt=new Date(Long.valueOf(1390973400983L));
            System.out.println(dt.toString());

            Calendar cal=Calendar.getInstance();
            cal.set(2014, Calendar.JANUARY, 29, 11, 00, 0);

            System.out.println(cal.getTimeInMillis());
            System.out.println();

    }