poisonousID 2022-04-14 21:33 采纳率: 100%
浏览 11
已结题

java如何在一个类(非主类)里实现日期间的计算

准确的来说我想问一问如何在一个非主类的类里面使用parse()方法

import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Calendar;
public class Test{
    public static void main(String args[]){
        String beginTime = "2022-03-13";
        String endTime = "2022-04-14";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
         long time1 = 0;
         long time2 = 0;
         try{
               cal.setTime(format.parse(beginTime));
               time1 = cal.getTimeInMillis();
               cal.setTime(format.parse(endTime));
               time2 = cal.getTimeInMillis();
         }catch(Exception e){
             e.printStackTrace();
        }
         long between_days=(time2-time1)/(1000*3600*24);
        System.out.println(between_days);
    }
}
   为什么用了SimpleDateFormat里的parse函数就一定要用try catch抛出ParseException异常啊,那不就是只能在主类里实现这一功能了么。如果我想在一个其他类里面实现这一功能该怎么办呢
    就是怎么在一个类里将一个String类型的时间转换成getTimeInMillis的那个类型进行计算。

上面这些内容都是我在网上零零散散搜索学习乱敲出来的,没系统学过Calendar和Date这俩,还请见谅。

  • 写回答

1条回答 默认 最新

  • 溪风沐雪 2022-04-14 21:57
    关注

    我按我的理解整理了一个例子,你参考一下吧:

    package com.example;
    
    import java.text.SimpleDateFormat;
    import java.text.ParseException;
    import java.util.Calendar;
    import java.util.Date;
    
    class DateFormat {
        private String format;
    
        public DateFormat(String format) {
            this.format = format;
        }
    
        public Date parse(String time) {
            SimpleDateFormat format = new SimpleDateFormat(this.format);
            try {
                Date date = format.parse(time);
                return date;
            } catch (ParseException e) {
                System.out.println("输入时间格式错误!");
                return null;
            }
    
        }
    }
    
    public class AppTest {
        public static void main(String args[]) {
            String beginTime = "2022-03-13";
            String endTime = "2022-04-14";
            DateFormat format = new DateFormat("yyyy-MM-dd");
            Calendar cal = Calendar.getInstance();
            long time1 = 0;
            long time2 = 0;
            try {
                cal.setTime(format.parse(beginTime));
                time1 = cal.getTimeInMillis();
                cal.setTime(format.parse(endTime));
                time2 = cal.getTimeInMillis();
            } catch (Exception e) {
                e.printStackTrace();
            }
            long between_days = (time2 - time1) / (1000 * 3600 * 24);
            System.out.println(between_days);
        }
    }
    
    
    

    如有帮助,请采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月22日
  • 已采纳回答 4月14日
  • 创建了问题 4月14日

悬赏问题

  • ¥15 关于#Mybatis#的问题:怎么办重复数据如下"KSDM":37,"KSMC":"呼吸内科门诊","ksdm":37,"ksmc":"呼吸内科门诊"xml文件填写
  • ¥40 servlet的web程序部署出错
  • ¥50 activiti 新建流程系列问题
  • ¥50 为什么我版本升级之后运行速度变慢5倍??
  • ¥15 如何在gazebo中加载机械臂和机械手
  • ¥15 纯运放实现隔离采样方案设计
  • ¥20 easyconnect无法连接后缀带.com的网站,一直显示找不到服务器ip地址,但是带有数字的网站又是可以连接上的,如何解决
  • ¥15 电脑开机过商标后就直接这样,求解各位
  • ¥15 mysql , 用自己创建的本地主机和用户名 登录不上
  • ¥15 关于#web项目#的问题,请各位专家解答!