【问题标题】:Convert date to long (manually)将日期转换为长(手动)
【发布时间】:2016-06-03 01:31:20
【问题描述】:

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

我有个约会

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 代码。

【问题讨论】:

  • 你没有考虑闰年。
  • @Keppil 好点。你有什么想法可以改变我的“公式”吗?
  • 虽然我们讨论的是闰年,但您也不能假设每四年都是闰年。 2000 年是闰年,但 2100、2200 和 2300 不是闰年,尽管它们是 %4。
  • 闰年,那是你没想到的!也有些月是 30 天有些不是
  • 您可以循环查看这些年。所有能被 4 整除的年份都是闰年,但能被 100 整除的年份除外,但包括能被 400 整除的年份。因此,除非您使用的日期晚于 2099 年,否则您范围内的每 4 年都应该是闰年。

标签: java date time


【解决方案1】:

不要重新发明轮子。时间/日期计算是出了名的困难,即使是标准的 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());
  }
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      为什么要手动将日期转换为长或长日期,编写一个简单的 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-28
        • 1970-01-01
        • 1970-01-01
        • 2013-09-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多