将日期转换为长(手动)

时间:2014-11-05 14:52:30

标签: java date time

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

我有个约会日期

2/11/2014

我想用长(手动)计算日期

我尝试了什么

(2014 - 1970 ) * 31449600000 + 11 * 2592000000 + 2 * 604800000

这相当于1413504000000。

但是http://www.fileformat.info/tip/java/date2millis.htm告诉我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代码。

3 个答案:

答案 0 :(得分:2)

不要重新发明轮子。时间/日期计算非常困难,即使是标准的java库也没有做到。使用JodaTime

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class JodaTimeSample {

  public static void main(String[] args) {
    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy");
    DateTime date = DateTime.parse("2/11/2014", formatter);
    System.out.println("Date: " + date.toString());
    System.out.println("Millis: " + date.getMillis());
  }
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

为什么你手动将日期转换为long或long转换为日期,写一个简单的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();

    }

}

有关详细信息,请访问here