A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

2黑马币
//下面用simpleDateFormate和calendar类两种方式获取生日毫秒值结果差了很多天啊????!!!!
//算算你来这个世界多少天了????
public class Test1 {
        public static void main(String[] args) throws ParseException {

                // 获取当前时间毫秒值
                Date now = new Date();
                long nowTime = now.getTime();
                System.out.println(nowTime);
                // 获取生日的毫秒值-----------方式一    //9363天
               
                 /* String birthday = "1990年07月09日";
                  SimpleDateFormat dfs = new SimpleDateFormat("YY年MM月dd日");
                  //将字符串转成日期对象
                  Date parse =dfs.parse(birthday);
                  //获取生日那天的毫秒值
                  long birthdayTime = parse.getTime();
                  System.out.println(birthdayTime);*/
                 
                // 获取生日的毫秒值-----------方式二        //9161天
                Calendar instance = Calendar.getInstance();
                instance.set(1990, 7, 9);
                long birthdayTime = instance.getTime().getTime();
                // 做差
                long time = nowTime - birthdayTime;
                // 换算成天数
                System.out.println(time / 1000 / 60 / 60 / 24);
        }

}

最佳答案

查看完整内容

Calendar的set方法,其中月份的值是0-11分别代表12个月 Calendar instance = Calendar.getInstance(); instance.set(1990, 7-1, 9);

6 个回复

倒序浏览
Calendar的set方法,其中月份的值是0-11分别代表12个月
Calendar instance = Calendar.getInstance();
                instance.set(1990, 7-1, 9);

  1. /*
  2. * 算一下你来到这个世界多少天?
  3. *
  4. *
  5. */
  6. public class Demo {
  7.         public static void main(String[] args) throws ParseException {
  8.                 Date date1 = new Date();
  9.                 String str = "1988-07-22";
  10.                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  11.                
  12.                 Date date2 =sdf.parse(str);
  13.                
  14.                 long time1 = date1.getTime();//现在的毫秒值
  15.                 long time2 = date2.getTime();//生日的毫秒值
  16.                
  17.                 long time = time1 - time2;
  18.                 System.out.println("来到这个世界:" + (time / 1000 / 3600 / 24) + " 天");
  19.                 System.out.println("来到这个世界:" + (time / 1000 / 3600 / 24 / 365) + " 年");
  20.         }
  21. }
复制代码

评分

参与人数 1黑马币 +2 收起 理由
small_horse + 2

查看全部评分

回复 使用道具 举报
       Calendar的set方法,其中月份的值是0-11分别代表12个月,所以你设置那里就用错了。另外你这两个方法一个用了SimpleDateFormat格式,另一个没有,也会有影响。
回复 使用道具 举报
  Calendar对象里面月份的值是从0到11,0代表1月以此类推,你设置的月份有问题。
回复 使用道具 举报
  1. public class DataTest {
  2.         public static void main(String[] args) throws ParseException {
  3.                 String time = "2014-03-11";
  4.                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  5.                 Date date = sdf.parse(time);
  6.                
  7.                 System.out.println( getDays(date) );
  8.         }
  9.        
  10.         //完成获取指定的日期 与今天相距多少天
  11.         public static long getDays(Date date) throws ParseException{
  12.                 Date currentDate = new Date();
  13.                 long seconds = currentDate.getTime() - date.getTime();
  14.                 long day = seconds/1000/60/60/24;
  15.                 return day;
  16.         }
  17. }
复制代码

评分

参与人数 1黑马币 +2 收起 理由
small_horse + 2

查看全部评分

回复 使用道具 举报
然而大牛们被没有被楼主采取意见
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马