java 如何计算 今日是自1970以来的 第几天?

如题所述

import java.util.Calendar;
import java.util.Date;

public class $ {

public static void main(String... _) {

// 1970年01月01日
Calendar c0 = Calendar.getInstance();
c0.set(1970, Calendar.JANUARY, 1);

// 今天
Calendar c1 = Calendar.getInstance();
c1.setTime(new Date());

// 相差毫秒数
long l = c1.getTimeInMillis() - c0.getTimeInMillis();

// 天数
System.out.println(l / 24 / 60 / 60 / 1000);
}
}追问

此种方法不准确,不知道为什么,把系统时间调到23:59:50 当时间跳到0点时,
此种方法计算的天数是不变的,

追答

按你的做法,我试了下:

由15481天->15482天了啊

追问

我是这么测的
long aa=System.currentTimeMillis()/24 / 60 / 60 / 1000;
System.out.println("========"+aa);
可能不对,呵呵

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-21
按照正常的计算即可 先判断闰年和平年 然后计算365和366 一直到当前的系统时间 进行相加即可
第2个回答  2012-05-21
import java.text.* ;
import java.util.* ;
class DateDemo{
public static void main(String args[]) throws Exception{
System.out.println("请输入一个日期,格式为(yyyy-mm-dd,如2000-01-01):") ;
Scanner sc = new Scanner(System.in) ;
String strDate = sc.next() ;
String pat = "yyyy-MM-dd" ;
SimpleDateFormat sdf = new SimpleDateFormat(pat) ; // 实例化模板对象
Date d1 = sdf.parse(strDate) ;
String str = "2012-05-21" ; //要比较的天数
Date d2 = sdf.parse(str) ;
long day = (d1.getTime() - d2.getTime()) /(1000*24*60*60) + 1 ;
System.out.println("相差" + day + "天。");
}
}

java 如何计算 今日是自1970以来的 第几天?
import java.util.Calendar;import java.util.Date;public class $ { public static void main(String... _) { \/\/ 1970年01月01日 Calendar c0 = Calendar.getInstance();c0.set(1970, Calendar.JANUARY, 1);\/\/ 今天 Calendar c1 = Calendar.getInstance();c1.setTime(new Date());\/\/ 相...

java中date的获取以及使用
1、使用new Date()获取当前日期,new Date().getTime()获取当前毫秒数 2、计算公式,等于获取的当前日期减去或者加上一天的毫秒数。一天的毫秒数的计算公式:24小时*60分钟*60秒*1000毫秒,也是86400000毫秒。举例:Date curDate = new Date();var preDate = new Date(curDate.getTime() - 24*60...

用java如何取得从1970 年到现在的毫秒数?
public static void main(String[] args) throws ParseException{ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date currentTime=new Date();\/\/将截取到的时间字符串转化为时间格式的字符串 Date beginTime=sdf.parse("1970-01-01 12:53:30");\/\/默认为毫秒 long int...

java 随机时间
\/\/构造开始日期 Date end = format.parse(endDate);\/\/构造结束日期 \/\/getTime()表示返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 if(start.getTime() >= end.getTime()){ return null; } long date = random(start.getTime(),end.getTime());...

在JAVA中如何判断当前时间是不是整点
System.currentTimeMillis()产生一个当前的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数,用来计算当前毫秒与1970年1月1日之间的毫秒差。那么我们就可以long time=System.currentTimeMillis();然后换算一下小时,发现1小时等于3600s等于3600000ms。那么我们把这个long类型的time进行一次取余运算。i...

Java计算两个日期时间相差几天,几小时,几分钟等
思路是先计算两个日期相差的毫秒数,然后分别根据每天的毫秒数、每小时的毫秒数、每分钟的毫秒数来计算相差几天,几小时,几分钟。具体代码如下:public static String getDatePoor(Date endDate, Date nowDate) { long nd = 1000 * 24 * 60 * 60;\/\/每天毫秒数 long nh = 1000 * 60 * 60;\/...

Java:1392515067621这种从1970年开始的毫秒数的时间戳叫什么时间戳呢...
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。 在实际应用上,...

java初级面试题目?
回答:equals是值比较(一般处理java开发都会这么说,算是ok的)而==是引用比较(或者对象比较);回答equals是可以自定义的,加分 5.将一个数组作为参数传递到一个方法中,在方法中,数组内的元素值被改变了,那么在方法外部,这个数组内的元素是否也被改编了? 回答:是,因为java方法中传递的是引用,就ok。如果回答中,将引...

如何计算My97DatePicker输入的两个日期之间的天数
将这两个日期转成java.util.Date类型,通过getTime()方法获取两个日期的自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数,为long型,将这个两个数字相减,在除以一天的毫秒数,就得到你想要的数字了

java请问2次调用获取系统时间的方法,理论上有可能一样吗,我要用来生成...
也就是在1毫秒以内做的动作,系统都会认为是同一时间点发生的,也就是时间是相等的。而java虚拟机的执行速度是极快的,它在1毫秒内执行了100次的取得系统时间,所以取得的时间是一样的。当然你如果不是连续取得系统时间,而是在1毫秒以外取得,那取得的系统时间就自然不一样了。希望对你有所帮助。

相似回答