我想将日期转换为长值(即毫秒)
我有个约会日期
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代码。
答案 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