JAVA里的Date.getTime()方法问题93
发布网友
发布时间:2023-11-10 14:14
我来回答
共5个回答
热心网友
时间:2024-11-30 08:58
没分...555不过还是告诉你吧,要这样写
public static void main(String args[]){
long a=new Date().getTime();
long b =1000;
long l=b*60*60*24*356;
System.out.println(a/l);
}
因为你原来的long b=1000*60*60*24*356;这个式子的数字都是int型你这样转是不对的...
我的解决是先定义一个long型..然后进行向上匹配..得到long 型
问题就这样....运行过是38年
热心网友
时间:2024-11-30 08:59
我试了一下
1971年转化而来的毫秒数 除以 一年的毫秒数 结果是23
奇怪…… 百思不得其解
热心网友
时间:2024-11-30 08:59
直接这样定义:
long b=1000*60*60*24*356l; //在最后加一个l
热心网友
时间:2024-11-30 09:00
1000*60*60*24*356是按照int类型计算的然后转换成long,1000*60*60*24*356超过了int的最大值。
你可以这样写:
long b=1000L*60L*60L*24L*356L;
但是尽管如此你计算的年份也不是十分精确,你可以用Calendar类进行日期运算。
比如:
Calendar c=Calendar.getInstance();
System.out.println(c.get(c.YEAR)-1970);
热心网友
时间:2024-11-30 09:01
最简单的方法,获得当前的日期,把年份得到,转换成int 在减去 1970
补充:
怎么可能是0呢!!!
int past = 1970;
int now = new Integer(new SimpleDateFormat("yyyy").format(new Date())).intValue();
System.out.println(now - past);